问题描述
我在使用jupyter notebook连接pyspark进行pyspark操作,在使用’toDF‘函数将rdd转换为DataFrame出现‘PipelinedRDD' object has no attribute 'toDF'的异常。但是奇怪的一点是,我用pyspark启动spark shell直接进行操作时,’toDF‘函数是可以正常使用的。
- jupyter notebook运行异常截图
- spark shell交互界面运行截图
问题解决
1. 问题原因
toDF
方法是在SparkSession
(SQLContext
1.x中的构造函数)构造函数内部执行的猴子补丁,因此要使用它,必须首先创建一个 SQLContext