Spark 讀取 CSV 文件設置 option 參數詳解


引言

spark 在讀取 csv 文件時,可能會涉及到很多參數設置,這篇文章總結了 option 里面的參數,希望能夠對你有所幫助

option 參數詳解

參數 解釋
sep 默認是, 指定單個字符分割字段和值
encoding 默認是uft-8通過給定的編碼類型進行解碼
quote 默認是,其中分隔符可以是值的一部分,設置用於轉義帶引號的值的單個字符。如果您想關閉引號,則需要設置一個空字符串,而不是null
escape 默認(\)設置單個字符用於在引號里面轉義引號
charToEscapeQuoteEscaping 默認是轉義字符(上面的escape)或者\0,當轉義字符和引號(quote)字符不同的時候,默認是轉義字符(escape),否則為\0
comment 默認是空值,設置用於跳過行的單個字符,以該字符開頭。默認情況下,它是禁用的
header 默認是false,將第一行作為列名
enforceSchema 默認是true, 如果將其設置為true,則指定或推斷的模式將強制應用於數據源文件,而CSV文件中的標頭將被忽略。 如果選項設置為false,則在header選項設置為true的情況下,將針對CSV文件中的所有標題驗證模式。模式中的字段名稱和CSV標頭中的列名稱是根據它們的位置檢查的,並考慮了*spark.sql.caseSensitive。雖然默認值為true,但是建議禁用 enforceSchema選項,以避免產生錯誤的結果
inferSchema inferSchema(默認為false`):從數據自動推斷輸入模式。 *需要對數據進行一次額外的傳遞
samplingRatio 默認為1.0,定義用於模式推斷的行的分數
ignoreLeadingWhiteSpace 默認為false,一個標志,指示是否應跳過正在讀取的值中的前導空格
ignoreTrailingWhiteSpace 默認為false一個標志,指示是否應跳過正在讀取的值的結尾空格
nullValue 默認是空的字符串,設置null值的字符串表示形式。從2.0.1開始,這適用於所有支持的類型,包括字符串類型
emptyValue 默認是空字符串,設置一個空值的字符串表示形式
nanValue 默認是Nan,設置非數字的字符串表示形式
positiveInf 默認是Inf
negativeInf 默認是-Inf 設置負無窮值的字符串表示形式
dateFormat 默認是yyyy-MM-dd,設置指示日期格式的字符串。自定義日期格式遵循java.text.SimpleDateFormat中的格式。這適用於日期類型
timestampFormat 默認是yyyy-MM-dd'T'HH:mm:ss.SSSXXX,設置表示時間戳格式的字符串。自定義日期格式遵循java.text.SimpleDateFormat中的格式。這適用於時間戳記類型
maxColumns 默認是20480定義多少列數目的硬性設置
maxCharsPerColumn 默認是-1定義讀取的任何給定值允許的最大字符數。默認情況下為-1,表示長度不受限制
mode 默認(允許)允許一種在解析過程中處理損壞記錄的模式。它支持以下不區分大小寫的模式。請注意,Spark嘗試在列修剪下僅解析CSV中必需的列。因此,損壞的記錄可以根據所需的字段集而有所不同。可以通過spark.sql.csv.parser.columnPruning.enabled(默認啟用)來控制此行為。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM