取消
顯示的結果
而不是尋找
你的意思是:

火花從S3為什麼隻有9時返回成千上萬的文件?

CarterM
新的貢獻者三世

我試圖從一個流JSON端點響應s3 bucket DLT火花。我之前一直在這種做法非常成功,但不同的是,這一次我將來自多個端點的響應存儲在s3 bucket相同,而之前這是一個單端點響應在一個桶。

設置場景

我讓GET請求9不同季節端點,每個不同的體育聯盟。端點返回給定體育聯賽賽季的列表。我決定將它們存儲在同一個s3 bucket因為端點響應結構化幾乎相同。

8/9的端點返回一個響應結構如下所示:

賽季的聯賽和列表

8 _9端點響應結構

9日端點是足球賽季,結構略有不同但也返回一個列表的季節。

足球端點9

關鍵端點的差異:

  • 端點給聯盟對象,8/9賽季。類型和Season.Status
  • 9日(足球)端點沒有聯盟對象,季節。類型、Season.Status
    • 它還提供了一個Season.Competitor_Id
  • 同樣重要的是要注意,並非所有8/9端點響應是完全相同的,有一些變化領域提供的季節。

問題:

當火花從s3 bucket流,它說,有成千上萬的JSON文件時隻有9。

在這裏你可以看到所有9桶。注意到足球是最大的文件。

9端點相同反應s3 bucket

然而,當顯示的流媒體數據幀火花s3 bucket它顯示有成千上萬的零足球JSON文件,同時正確顯示其他8個項目隻有1 JSON文件。

我覺得足球端點響應文件被auto-exploded成成千上萬的文件。這可以解釋為什麼足球的季節列是空的,因為它已經發生爆炸,現在包含其他字段。

任何指導將不勝感激,如果我能更清楚的請讓我知道。

提前謝謝!

1接受解決方案

接受的解決方案

CarterM
新的貢獻者三世

足球賽季端點響應是唯一一個反斜杠“\”,表示一個新行字符。當使用自動裝卸機需要指定“多行”選項顯示JSON跨多個…

.option(“多行”,“真正的”)

這使得s3流解釋每個部分之間的反斜杠作為一個單獨的JSON文件,導致成千上萬的零足球列文件和沒有季節。

JSON和反斜杠導致錯誤

在原帖子查看解決方案

2回答2

CarterM
新的貢獻者三世

足球賽季端點響應是唯一一個反斜杠“\”,表示一個新行字符。當使用自動裝卸機需要指定“多行”選項顯示JSON跨多個…

.option(“多行”,“真正的”)

這使得s3流解釋每個部分之間的反斜杠作為一個單獨的JSON文件,導致成千上萬的零足球列文件和沒有季節。

JSON和反斜杠導致錯誤

匿名
不適用

@Carter係泊感謝你回到你的線程提供一個解決方案!高興你這麼快就能算出來。我確信,這將幫助別人在未來同樣的問題。:smiling_face_with_smiling_eyes:

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map