Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 将列表转换为pyspark数据帧_Python 3.x_Pyspark - Fatal编程技术网

Python 3.x 将列表转换为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

我有一个从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 = 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()
以查看数据。明白了。。我是新手。非常感谢你。