我最近开始使用SparkR。我正在使用Rstudio服务器。但是当我跑
sql_tmp3 <- sql(sqlContext, "FOR i IN 1..3 LOOP
INSERT INTO tmptable VALUES (i)
END LOOP")
我收到错误:
问题是什么?请帮帮我
Spark Sql不支持Advance SQL。你不能在spark SQL中使用For ... Loop和INSERT。在Spark中使用For循环并不是一种好习惯。如果你想,那么你可以使用foreach代替这个。
粗略地说,您可以通过以下方式使用您的代码:如果在tmp数据帧中只有一列,则创建Seq的数据帧,从1到3,名称为sql_tmp2,并使用覆盖tmp(tmptable)进行写入。
问题是你使用了两个不受支持的结构:
FOR
循环 - 根本不支持循环INSERT INTO ... VALUES ...
- 支持的唯一INSERT
形式
INSERT INTO ...
SELECT ... FROM ...