我試圖從一個流JSON端點響應s3 bucket DLT火花。我之前一直在這種做法非常成功,但不同的是,這一次我將來自多個端點的響應存儲在s3 bucket相同,而之前這是一個單端點響應在一個桶。
設置場景
我讓GET請求9不同季節端點,每個不同的體育聯盟。端點返回給定體育聯賽賽季的列表。我決定將它們存儲在同一個s3 bucket因為端點響應結構化幾乎相同。
8/9的端點返回一個響應結構如下所示:
賽季的聯賽和列表
9日端點是足球賽季,結構略有不同但也返回一個列表的季節。
關鍵端點的差異:
問題:
當火花從s3 bucket流,它說,有成千上萬的JSON文件時隻有9。
在這裏你可以看到所有9桶。注意到足球是最大的文件。
然而,當顯示的流媒體數據幀火花s3 bucket它顯示有成千上萬的零足球JSON文件,同時正確顯示其他8個項目隻有1 JSON文件。
我覺得足球端點響應文件被auto-exploded成成千上萬的文件。這可以解釋為什麼足球的季節列是空的,因為它已經發生爆炸,現在包含其他字段。
任何指導將不勝感激,如果我能更清楚的請讓我知道。
提前謝謝!
足球賽季端點響應是唯一一個反斜杠“\”,表示一個新行字符。當使用自動裝卸機需要指定“多行”選項顯示JSON跨多個…。
.option(“多行”,“真正的”)
這使得s3流解釋每個部分之間的反斜杠作為一個單獨的JSON文件,導致成千上萬的零足球列文件和沒有季節。