如何更新Spark SQL
DataFrame
行/列值而不转换为RDD
?
为什么我们无法像RDD
那样直接更新DataFrame并返回另一个。
答案 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")