вы можете сделать что-то вроде этого,
Пожалуйста, убедитесь, что я не изменяю схему для окончательного DF, и она все равно будет действовать как строка. если ты хочешь. вам придется изменить schema
.
from pyspark.sql.types import StructType, StringType, StructField
data=sc.parallelize([
[0, [123], "tom"],
[1, [123], "brad"]
])
schema = StructType([
StructField("id", StringType(), True),
StructField("name", StringType(), True),
StructField("count", StringType(), True)
])
DF = sqlContext.createDataFrame(data, schema)
DF.show()
+---+-----+-----+
| id| name|count|
+---+-----+-----+
| 0|[123]| tom|
| 1|[123]| brad|
+---+-----+-----+
x = data.map(lambda x: [x[0],int(x[1][0]), x[2]]).toDF(schema)
x.show()
+---+----+-----+
| id|name|count|
+---+----+-----+
| 0| 123| tom|
| 1| 123| brad|
+---+----+-----+