簡體   English   中英

pyspark df.write寫入(鑲木地板)到S3但是列中有一半的數據缺失

[英]pyspark df.write writing(parquet) to S3 but data is missing in half the columns

使用EMR w 4名工人和1名主人

  • 發布標簽:emr-5.24.0
  • Hadoop發行版:亞馬遜2.8.5
  • 應用程序:Spark 2.4.2,Hive 2.3.4

我能夠處理我的數據並在pyspark中創建正確的數據框。 但是當我將df寫入(鑲嵌)到S3時,文件確實放在S3中的正確位置,但是7列中的3列突然丟失了數據。

任何人都可以解釋我需要做些什么來解決這個問題? 以下是相關代碼和結果截圖。 我已經在屏幕截圖中重命名了一些列來保護隱私。

我的代碼:

# For multi tables
df_multi.show(5)
df_multi.printSchema()
print("\n At line 578, after show(), writing to EDL\n")
df_multi.write.mode("append").parquet(multi_s3_bucket_dir)
print("\n  SCRIPT COMPLETED  \n")

腳本運行時輸出的屏幕截圖。 我將它作為nohup運行並將stdin&sterr重定向到一個文件以便稍后查看: 運行時的截圖

這是輸出,使用Athena從S3讀取: 雅典娜查詢

Mea culpa。 問題解決了。 我在df中的列名與Athena DDL中的列名不完全匹配。 由於鑲木地板是“架構式讀取”,系統會創建一個與df匹配的架構,但它只能導入名稱為DID的列,其余列為空。

學過的知識。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM