Python 3.x 将列表转换为pyspark数据帧
我有一个从mysql数据库获取的元组列表。我需要把它转换成pyspark数据帧 我的代码如下所示:Python 3.x 将列表转换为pyspark数据帧,python-3.x,pyspark,Python 3.x,Pyspark,我有一个从mysql数据库获取的元组列表。我需要把它转换成pyspark数据帧 我的代码如下所示: os.environ['PYSPARK_SUBMIT_ARGS'] = "--packages mysql:mysql-connector-java:5.1.39 pyspark-shell" spark = SparkSession.builder.appName('recommendation_clustering').getOrCreate() sqlContext = S
os.environ['PYSPARK_SUBMIT_ARGS'] = "--packages mysql:mysql-connector-java:5.1.39 pyspark-shell"
spark = SparkSession.builder.appName('recommendation_clustering').getOrCreate()
sqlContext = SQLContext(spark)
final_result = sqlContext.read.format("jdbc").options(
url="jdbc:mysql://localhost:3306/mysqldb",
driver="com.mysql.jdbc.Driver",
dbtable="(select movie_id, genres from program) as rating",
user="user",
password="password",
properties={"driver": 'com.mysql.jdbc.Driver'}
).load().take(3)
最终结果的类型为列表,如下所示:
[世界其他地区(电影_id='0-0-10',类型='[喜剧]”),世界其他地区(电影_id='0-0-1113',
类型=“[音乐]”),行(电影_id='0-0-1132',类型=“[音乐])]))
我需要把它转换成pyspark数据帧
我试过了sqlDataFrame=sqlContext.createDataFrame(最终结果,[“movie\u id”,“genres”])
但收到了错误消息。您在评论中提到的错误,AttributeError:“SparkSession”对象没有属性“parallelize”
可能是因为您试图使用SparkSession
创建sqlContext
SparkSession
是使用Spark操作数据的统一入口点,您不需要单独创建SQLContext
。直接使用spark
变量读取数据
阅读更多细节
另外,如果您只是使用
spark
而不是sqlContext
,那么您已经在pyspark数据帧中获得了数据final_result
,错误是什么?AttributeError:'SparkSession'对象没有属性“parallelize”,您需要使用take(3)
?因为没有它,final\u result
已经是一个pyspark数据帧了。我以为有一个数据帧,而不是pyspark数据帧。当我删除take函数时,我得到了数据帧的输出[movie\u id:string,genres:string]是的!这是您的pyspark数据帧。写入final\u result.show()
以查看数据。明白了。。我是新手。非常感谢你。