Spark Python的一些问题2
继续总结下使用spark的一些问题.
dataframe的一些使用
问题: 如何查看dataframe中的内容?
直接调用df.show()
方法
问题: dataframe如何转成rdd?
直接使用row = df.rdd
. 注意, 这里的rdd是pyspark.sql.Row类型, 属性访问使用row.xxx
.
另外rdd转成dataframe可以用pyspark.sql.SQLContext.createDataFrame方法: df = sqlContext.createDataFrame(rdd)
spark结果保存
spark中的rdd或者dataframe可以保存成文件, 举个例子:
1 2 |
|
如果去查看对应的文件会发现cool.json
是个文件夹:
1 2 3 4 |
|
为什么会这样子呢? 在这里找到了答案. 简单说数据在落盘时会写多份(mr机制).
如果是在spark中读取数据直接用文件名cool.json
. 但是在外部使用的时候肯定还是会想要单个文件吧? 我们可以使用hdfs
的getmerge
指令来将对应内容导出成一个文件:
1 2 |
|
同pandas配合
我们将spark的数据导出成json文件有什么好处呢? 主要是为了复用与做进一步分析;)
例如我们可以使用pandas来对生成的json文件进行进一步的分析. 题外话, python结合pandas有点类似r, 这里有个简单的对比.
这里有个小问题: spark中输出的json文件并非正常的json, 在pandas中使用需要稍微处理一下:
1 2 3 |
|
开始分析吧;)