sparkR,如何使用sql()函数?

问题描述 投票:0回答:2

我最近开始使用SparkR。我正在使用Rstudio服务器。但是当我跑

sql_tmp3 <- sql(sqlContext, "FOR i IN 1..3 LOOP
            INSERT INTO tmptable VALUES (i)
            END LOOP") 

我收到错误:

enter image description here

问题是什么?请帮帮我

sql r apache-spark sparkr
2个回答
1
投票

Spark Sql不支持Advance SQL。你不能在spark SQL中使用For ... Loop和INSERT。在Spark中使用For循环并不是一种好习惯。如果你想,那么你可以使用foreach代替这个。

粗略地说,您可以通过以下方式使用您的代码:如果在tmp数据帧中只有一列,则创建Seq的数据帧,从1到3,名称为sql_tmp2,并使用覆盖tmp(tmptable)进行写入。


0
投票

问题是你使用了两个不受支持的结构:

  • FOR循环 - 根本不支持循环
  • INSERT INTO ... VALUES ... - 支持的唯一INSERT形式 INSERT INTO ... SELECT ... FROM ...
© www.soinside.com 2019 - 2024. All rights reserved.