Crie o DataFrame da lista de tuplas usando o pyspark
Estou trabalhando com dados extraídos do SFDC usando o pacote simple-salesforce. Estou usando o Python3 para scripts e o Spark 1.5.2.
Eu criei um rdd contendo os seguintes dados:
[('Id', 'a0w1a0000003xB1A'), ('PackSize', 1.0), ('Name', 'A')]
[('Id', 'a0w1a0000003xAAI'), ('PackSize', 1.0), ('Name', 'B')]
[('Id', 'a0w1a00000xB3AAI'), ('PackSize', 30.0), ('Name', 'C')]
...
Esses dados estão no RDD chamado v_rdd
Meu esquema fica assim:
StructType(List(StructField(Id,StringType,true),StructField(PackSize,StringType,true),StructField(Name,StringType,true)))
Estou tentando criar o DataFrame a partir deste RDD:
sqlDataFrame = sqlContext.createDataFrame(v_rdd, schema)
Imprimo meu DataFrame:
sqlDataFrame.printSchema()
E obtenha o seguinte:
+--------------------+--------------------+--------------------+
| 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...|
Espero ver dados reais, como este:
+------------------+------------------+--------------------+
| Id|PackSize| Name|
+------------------+------------------+--------------------+
|a0w1a0000003xB1A | 1.0| A |
|a0w1a0000003xAAI | 1.0| B |
|a0w1a00000xB3AAI | 30.0| C |
Você pode me ajudar a identificar o que estou fazendo de errado aqui.
Meu script Python é longo, não tenho certeza se seria conveniente para as pessoas analisá-lo, por isso postei apenas as partes com problemas.
Agradeço uma tonelada de antecedência!