Crear DataFrame a partir de la lista de tuplas usando pyspark

Estoy trabajando con datos extraídos de SFDC usando el paquete simple-salesforce. Estoy usando Python3 para scripting y Spark 1.5.2.

Creé un rdd que contiene los siguientes datos:

[('Id', 'a0w1a0000003xB1A'), ('PackSize', 1.0), ('Name', 'A')]
[('Id', 'a0w1a0000003xAAI'), ('PackSize', 1.0), ('Name', 'B')]
[('Id', 'a0w1a00000xB3AAI'), ('PackSize', 30.0), ('Name', 'C')]
...

Estos datos están en RDD llamados v_rdd

Mi esquema se ve así:

StructType(List(StructField(Id,StringType,true),StructField(PackSize,StringType,true),StructField(Name,StringType,true)))

Estoy tratando de crear DataFrame a partir de este RDD:

sqlDataFrame = sqlContext.createDataFrame(v_rdd, schema)

Imprimo mi DataFrame:

sqlDataFrame.printSchema()

Y obtén lo siguiente:

+--------------------+--------------------+--------------------+
|                  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 datos reales, como este:

+------------------+------------------+--------------------+
|                Id|PackSize|                          Name|
+------------------+------------------+--------------------+
|a0w1a0000003xB1A  |               1.0|       A            |
|a0w1a0000003xAAI  |               1.0|       B            |
|a0w1a00000xB3AAI  |              30.0|       C            |

¿Pueden ayudarme a identificar qué estoy haciendo mal aquí?

Mi script de Python es largo, no estoy seguro de que sea conveniente que la gente lo revise, así que publiqué solo partes con las que tengo problemas.

¡Muchas gracias de antemano!

Respuestas a la pregunta(1)

Su respuesta a la pregunta