簡體   English   中英

CSV文件讀取Spark 1.6

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM