[英]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.