Spark SQL - 更新DataFrame行/列值而不转换为RDD

时间:2016-03-22 08:41:27

标签: java apache-spark-sql

如何更新Spark SQL DataFrame行/列值而不转换为RDD

为什么我们无法像RDD那样直接更新DataFrame并返回另一个。

1 个答案:

答案 0 :(得分:0)

RDD是不可变的,RDD上的“转换”只能生成新的RDD。数据帧是RDD的包装器,因此受到所述不可靠性的影响 例如:

oldDF.registerTempTable("whatever") 

val newDF = sqlContext.sql("select field1,field2,sum(field3) as times from whatever where substring(field1,1,4)='test' group by field1,field2 having times>100").collect().saveAsParquetFile("xxx.parquet")