Spark(Scala)在for循环中执行数据帧

时间:2017-03-20 09:58:52

标签: scala apache-spark apache-spark-sql spark-dataframe

我正在使用spark 1.6.1版本。我要求在循环中执行数据帧。

for ( i <- List ('a','b')){
 val i = sqlContext.sql("SELECT i, col1, col2 FROM DF1")}

我希望此数据框执行两次(i = ai = b)。

1 个答案:

答案 0 :(得分:3)

您的代码几乎是正确的。 除了两件事:

  • i已在您的for循环中使用,因此请勿在{{1​​}}
  • 中使用它
  • 如果要在字符串中使用val i =的值,请使用String Interpolation

所以你的代码应该是这样的:

i

作者评论后编辑:

您可以使用for (i <- List ('a','b')) { val df = sqlContext.sql(s"SELECT $i, col1, col2 FROM DF1") df.show() } 然后.map

执行此操作
.reduceLeft