[英]Extract Schema from nested Json-String column in Pyspark
假设我有下表:
身体 |
---|
{"Day":1,"vals":[{"id":"1", "val":"3"}], {"id":"2", "val":"4"}} |
我的目标是在 Pyspark 中为这个嵌套的 json 列写下架构。 我尝试了以下两件事:
schema = StructType([
StructField("Day", StringType()),
StructField(
"vals",
StructType([
StructType([
StructField("id", StringType(), True),
StructField("val", DoubleType(), True)
])
StructType([
StructField("id", StringType(), True),
StructField("val", DoubleType(), True)
])
])
)
])
在这里我得到的错误是
'StructType' object has no attribute 'name'
另一种方法是将嵌套数组声明为 ArrayType:
schema = StructType([
StructField("Day", StringType()),
StructField(
"vals",
ArrayType(
ArrayType(
StructField("id", StringType(), True),
StructField("val", DoubleType(), True)
, True)
ArrayType(
StructField("id", StringType(), True),
StructField("val", DoubleType(), True)
, True)
, True)
)
])
在这里,我收到以下错误:
takes from 2 to 3 positional arguments but 5 were given
这可能来自仅将 Sql 类型作为参数的数组。
谁能告诉我他们创建模式的方法是什么,因为我是整个主题的超级新手..
您的第二个嵌套 StructType 需要一个名称:
schema = StructType([StructField("Day", DoubleType()),
StructField("vals", StructType([StructField("id",StringType()), StructField("val", DoubleType())])),
StructField("vals2", StructType([StructField("id",StringType()), StructField("val", DoubleType())]))
])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.