0
我收到以下錯誤: 解析期間出錯。重複約束更具限制性:不能將需要的二進制MyTime類型合併到可選的二進制MyTime中。 也許其中一個文件已損壞,但我不知道如何跳過它。Parquetloader:無法使用豬加載多個鑲木地板文件
感謝
我收到以下錯誤: 解析期間出錯。重複約束更具限制性:不能將需要的二進制MyTime類型合併到可選的二進制MyTime中。 也許其中一個文件已損壞,但我不知道如何跳過它。Parquetloader:無法使用豬加載多個鑲木地板文件
感謝
讀取在他們的模式略有不同的元數據的多個拼花文件時,會出現這種情況。要麼你在一個目錄中有混合的文件集合,要麼你給這個LOAD
聲明一個glob,並且在這方面得到的文件集合是混合的。
而不是在AS()
子句中指定的模式或使裸調用加載函數的溶液是重寫該例在裝載器函數的參數的模式:
data = LOAD 'data'
USING parquet.pig.ParquetLoader('n1:int, n2:float, n3:double, n4:long')
否則加載函數推斷來自它遇到的第一個文件的模式,然後與其他文件衝突。
如果在架構規範中嘗試使用bytearray
類型,然後在隨後的FOREACH
中轉換爲所需類型,仍然有問題。
根據Parquet source code還有一個加載函數的參數,它允許根據位置而不是名稱來指定列(默認值),但我沒有嘗試過。
參見http://www.ericlin.me/unable-to-read-parquet-files-with-same-schema-and-different-flags-in-pig –