1. 程式人生 > >Spark 數據導入時的類型檢測相關問題

Spark 數據導入時的類型檢測相關問題

spark 大數據 hadoop sqlserver

Spark 可以讀取文本,csv和rmdb中的數據,並且帶有類型自動檢測功能


public final static String DATA_SEPARATOR_TAB = "\t";

session.read().format("csv").option("delimiter", Constants.DATA_SEPARATOR_TAB).option("inferSchema", "true").option("header", "true").option("encoding", charset).csv(path).toDF(columnNames).write().mode(mode).saveAsTable(tempTable);


紅色屬性決定spark是否自動探測數據類型,如果不開啟自動探測,默認都是string

rdbms導入到spark中默認會類型探測和對應,但是在處理sqlserver的時間類型有問題

技術分享



如上圖所示

只有datetime可以被spark識別並存儲為日期類型,其他的都落地成了String類型,所以在執行data_formate時因為要多做一步轉換所以性能會差很多




Spark 數據導入時的類型檢測相關問題