Конвертировать список в фрейм pyspark - PullRequest
0 голосов
/ 28 июня 2018

У меня есть список кортежей, который был извлечен из mysql db. Мне нужно преобразовать его в фрейм данных 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)

Тип final_result - список, и он выглядит следующим образом:

[Row (movie_id = '0-0-10', genres = '[Comedy]'), Row (movie_id = '0-0-1113', genres = '[Music]'), Row (movie_id = '0-0-1132', genres = '[Music]')])

Мне нужно преобразовать его в фрейм данных pyspark.

Я пытался
sqlDataFrame = sqlContext.createDataFrame(final_result,["movie_id","genres"]) но получено сообщение об ошибке.

1 Ответ

0 голосов
/ 28 июня 2018

Ошибка, которую вы упомянули в комментариях, AttributeError: 'SparkSession' object has no attribute 'parallelize' возможно, потому что вы пытаетесь создать SQLContext, используя SparkSession. SparkSession - это единая точка входа для управления данными с помощью Spark, и вам не нужно создавать SQLContext отдельно. Непосредственно используйте переменную spark для чтения данных.

Прочитайте этот ответ для более подробной информации.

Кроме того, вы уже получаете данные final_result в фрейме данных pyspark, если вы просто используете spark вместо sqlContext.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...