我們不想在自動裝卸機使用模式推理模式演化。相反,我們希望運用我們的模式和使用merge選項。我們的方案非常複雜,與多個嵌套後的水平。
當我這個模式適用於自動裝卸機,它運行沒有錯誤,但看來自動裝卸機不能解析這個多層嵌套模式。自動裝卸機創建列從頂層,但是所有的嵌套級別和值是NULL。
流= spark.readStream.format \ (“cloudFiles”)
.option (“cloudFiles。形式at", al_in_file_format)\
.option \(“多行”,真正的)
.option \ (cloudFiles.allowOverwrites,真的)
.option (“cloudFiles。useNotifications”,真的)\
.option (“cloudFiles。subscriptionId \”, subscribtion)
.option (“cloudFiles。tenantId \”, tenant_id)
.option (“cloudFiles。clientId client_id) \”
.option (“cloudFiles。clientSecret client_secret) \”
.option (“cloudFiles。resourceGroup”、“orcus-eastus”) \
. schema (schema_from_data_catalog) \
.load (row [" al_json_loc "]) \
.withColumn (“CurrTime current_timestamp ()) \
.withColumn (“filePath input_file_name ()) \
.writeStream.format al_out_format \
.option (checkpointLocation,行[" al_checkpoint_path "]) \
.option \ (mergeSchema,真的)
.outputMode \(“追加”)
.table (databasetable)
我們的模式是這種格式
{
“美元模式”:“http://json-schema.org/draft-07/schema”,
“類型”:“對象”,
“標題”:“LTE的見解”,
“描述”:“LTE的見解”,
"屬性":{
" id ": {
“類型”:“字符串”,
“描述”:“唯一標識符”
},
"名稱":{
“類型”:“字符串”,
“描述”:“名字”
}
}
}
但自動裝卸機預計這種格式的模式。{
“字段”:[
{
“元數據”:{},
“名稱”:“id”,
“可空”:沒錯,
“類型”:“字符串”
},
{
“元數據”:{},
“名稱”:“名字”,
“可空”:沒錯,
“類型”:“字符串”
},
{
“元數據”:{},
“名稱”:“_rescued_data”,
“可空”:沒錯,
“類型”:“字符串”
},
{
“元數據”:{},
“名稱”:“CurrTime”,
“可空”:沒錯,
“類型”:“時間戳”
},
{
“元數據”:{},
“名稱”:“filePath”,
“可空”:沒錯,
“類型”:“字符串”
}
),
“類型”:“結構”
}
有辦法的模式轉換為模式格式,自動裝卸機預計?