我想使用badRecordsPath趕上不當形成記錄一個CSV文件,繼續加載文件的其餘部分。我可以選擇使用python這樣的工作
df =火花。讀\ .format (csv) \ .option(“頭”,“真正的”)\ .option (“badRecordsPath”、“wasbs: / /(電子郵件保護)/ badRecords /”) \ . schema (col1整數,col2整數)\ .load (“wasbs: / /(電子郵件保護)/ * . csv”)
但是當我嚐試使用它在複製到SQL命令我不能讓它工作。記錄有寬鬆的模式和null代替壞數據。我試著把badRecordsPath條款的格式和複製選項和得到相同的結果。
複製到my_db。t2(選擇演員(col1整數)col1,演員(col2整數)“col2”從“wasbs: / /(電子郵件保護)/ * . csv) fileformat = csv format_options(“標題”=“真實”,“9”= ',',' badRecordsPath ' = ' wasbs: / /(電子郵件保護)/ badRecords”)複製到my_db。t2(選擇演員(col1整數)col1,演員(col2整數)“col2”從“wasbs: / /(電子郵件保護)/ * . csv) fileformat = csv format_options(“標題”=“真實”,“9”= " ")copy_options (' badRecordsPath ' = '(電子郵件保護)/ badRecords”)
這是磚我使用的版本
{“dbr_version”:“11.2.x-scala2.12”、“dbsql_version”:空,“u_build_hash”:“38130494 fa061680c589459fb2a35b344ea1a814”、“r_build_hash”:“c45f53067ddc71ffe1ee06997bad04b3c7143650”}
欣賞任何指導。謝謝。
謝謝。這是inferSchema設置。我試過和沒有選擇,它的作用是雙向的,當我添加inferSchema
這兩個工作
刪除表my_db.t2;my_db創建表。t2 (col1 int, col2 int);複製到my_db。t2(選擇演員(col1整數)col1,演員(col2整數)“col2”從“wasbs: / /(電子郵件保護)/ * . csv) fileformat = csv format_options(“標題”=“真實”,“9”= ',',' inferSchema ' = '真實的',' badRecordsPath ' = ' wasbs: / /(電子郵件保護)drop table my_db.t2 / badRecords ');my_db創建表。t2 (col1 int, col2 int);複製到my_db。從“wasbs: / / t2(電子郵件保護)/ *。csv ' fileformat = csv format_options(“標題”=“真實”,“9”= ',',' inferSchema ' = '真實的',' badRecordsPath ' = ' wasbs: / /(電子郵件保護)/ badRecords”)