[英]Csv file reading spark 1.6
我的csv文件看起來
123456
Name age branch
Mahesh 21 ece
Pawan 22 cse
Count-21
它具有標題(123456)和拖車(count-21)
我試圖用spark 1.6創建的spark上下文閱讀它並閱讀
Val df = spark.read.option("com.databrics.csv").option("header",false). option("inferSchema",false).load(path)
df.show()
而且我能夠讀取數據,但它只讀取第一列
123456
Name
Mahesh
Pawan
Count-21
剩下的就是不讀書我可以添加任何其他選項。
運行df.show()時的預期輸出
123456
Name age branch
Mahesh 21 ece
Pawan 22 cse
Count-21
輸出結果:
123456
Name
Mahesh
Pawan
Count-21
您的輸入文件不是一個很好的csv文件。 它不是逗號分隔的,這是數據塊的默認值。 如果文件是制表符分隔的,則可以使用.option("delimiter", "\\t")
。 字段數在行之間也不應變化。 Spark無法從第一行得知文件中有多少個字段。 如果可以用正確的字段數固定第一行,並且字段之間的分隔符一致,那么您應該能夠讀取它。
嘗試這個:
Val df = spark.read().format("csv").schema(<define_schema_with_your_struct_fields>).option("header",false).load(path)
您可能希望定義以下架構:
List<StructField> fldList = new ArrayList<StructField>();
fldList.add(DataTypes.createStructField("Name", DataTypes.StringType, true));
fldList.add(DataTypes.createStructField("Age", DataTypes.StringType, true));
fldList.add(DataTypes.createStructField("Branch", DataTypes.StringType, true));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.