我正在使用Spark SQL从JSON文件中提取一些信息。问题是我想将SQL分析的结果保存到另一个JSON中,以便用Plateau或d3.js绘制它。问题是我不知道该怎么做。有什么建议吗?
val inputTable = sqlContext.jsonFile(inputDirectory).cache()
inputTable.registerTempTable("inputTable")
val languages = sqlContext.sql("""
SELECT
user.lang,
COUNT(*) as cnt
FROM tweetTable
GROUP BY user.lang
ORDER BY cnt DESC
LIMIT 15""")
languages.rdd.saveAsTextFile(outputDirectory + "/lang")
languages.collect.foreach(println)
我不介意将数据保存到.csv文件中,但我不知道该怎么做。
谢谢!
答案 0 :(得分:4)
只是
val languagesDF: DataFrame = sqlContext.sql("<YOUR_QUERY>")
languagesDF.write.json("your.json")
您无需返回RDD
。
但是,请注意,您的JSON将分为多个部分。 如果那不是您的意图,请阅读
关于如何规避这个问题(如果真的需要)。重点是使用repartition
或coalesce
。