Создать DataFrame из списка кортежей, используя pyspark
Я работаю с данными, извлеченными из SFDC, используя пакет simple-salesforce. Я использую Python3 для сценариев и Spark 1.5.2.
Я создал rdd, содержащий следующие данные:
[('Id', 'a0w1a0000003xB1A'), ('PackSize', 1.0), ('Name', 'A')]
[('Id', 'a0w1a0000003xAAI'), ('PackSize', 1.0), ('Name', 'B')]
[('Id', 'a0w1a00000xB3AAI'), ('PackSize', 30.0), ('Name', 'C')]
...
Эти данные в RDD называются v_rdd
Моя схема выглядит так:
StructType(List(StructField(Id,StringType,true),StructField(PackSize,StringType,true),StructField(Name,StringType,true)))
Я пытаюсь создать DataFrame из этого RDD:
sqlDataFrame = sqlContext.createDataFrame(v_rdd, schema)
Я печатаю свой DataFrame:
sqlDataFrame.printSchema()
И получите следующее:
+--------------------+--------------------+--------------------+
| Id| PackSize| Name|
+--------------------+--------------------+--------------------+
|[Ljava.lang.Objec...|[Ljava.lang.Objec...|[Ljava.lang.Objec...|
|[Ljava.lang.Objec...|[Ljava.lang.Objec...|[Ljava.lang.Objec...|
|[Ljava.lang.Objec...|[Ljava.lang.Objec...|[Ljava.lang.Objec...|
Я ожидаю увидеть реальные данные, например:
+------------------+------------------+--------------------+
| Id|PackSize| Name|
+------------------+------------------+--------------------+
|a0w1a0000003xB1A | 1.0| A |
|a0w1a0000003xAAI | 1.0| B |
|a0w1a00000xB3AAI | 30.0| C |
Не могли бы вы помочь мне определить, что я делаю здесь неправильно?
Мой Python-скрипт длинный, я не уверен, что людям будет удобно просеивать его, поэтому я разместил только те части, с которыми у меня возникли проблемы.
Заранее благодарим за тонну!