Python 使用pyspark中包含MapType的复杂架构创建数据帧
我正在尝试使用以下架构创建数据帧:Python 使用pyspark中包含MapType的复杂架构创建数据帧,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我正在尝试使用以下架构创建数据帧: |-- data: struct (nullable = true) | |-- id: long (nullable = true) | |-- keyNote: struct (nullable = true) | | |-- key: string (nullable = true) | | |-- note: string (nullable = true) | |-- details: map (n
|-- data: struct (nullable = true)
| |-- id: long (nullable = true)
| |-- keyNote: struct (nullable = true)
| | |-- key: string (nullable = true)
| | |-- note: string (nullable = true)
| |-- details: map (nullable = true)
| | |-- key: string
| | |-- value: string (valueContainsNull = true)
这是我能做到的最好的事情:
schema = StructType([
StructField("id",LongType(), True),
StructField("keyNote",StructType([
StructField("key",StringType(),True),
StructField("note",StringType(),True)
])),
StructField("details",MapType(StringType, StringType, True))
])
df = spark\
.createDataFrame([("idd",("keyy","notee"),("keyy","valuee")),schema])
但我有个例外:
AssertionError:keyType应为数据类型
似乎您应该为MapType编写正确的语法:
MapType(StringType(), StringType(), True)
您编写的StringType没有括号,而不是StringType() 在
详细信息中的字符串类型之后缺少()
?始终共享整个错误消息。