[英]Load a CSV file from line 17 of the file in scala spark
我在scala中使用spark的數據框存在問題。 我正在使用var df = spark.read.format("csv").load("csvfile.csv")
方法讀取CSV文件並將其存儲在DF中。 我的CSV文件中有16行我不想閱讀的注釋。 我還沒有發現避免標頭的表達方式,但是它只有一行。 任何想法?
謝謝。
在solution1以下,僅適用於僅以一個公共符號/字母開頭的注釋。 solution2適用於解決方案列表中添加的所有符號。
解決方案1:
如果所有注釋均以通用字母/符號/數字開頭,請在此答案的關鍵comment
option
值中輸入該符號。
Apache Spark Dataframe-從CSV文件的第n行加載數據
但是,如果某些注釋以與其余注釋不同的符號開頭,則將無法解決。
解決方案2:
在此解決方案中,我刪除了以符號*
, /
和數字7
開頭的行。 根據您的實際注釋的開頭字母替換List
值。
import ss.implicits._
val rd = ss.sparkContext.textFile(path)
rd.filter(x => !List('*','7','/').contains(x.charAt(0))) // reading file as RDD and filtering records starting with comment letters or symbols or alphabets
.map(x => x.split(","))
.map(x => (x(0),x(1),x(2),x(3)))
.toDF("id","name","department","amount")
.show()
輸入:
*ghfghfgh
*mgffhfg
/fgfgdfgf
7gdfgh
1,Praveen,d1,30000
2,naveen,d1,40000
3,pavan,d1,50000
輸出:
+---+-------+----------+------+
| id| name|department|amount|
+---+-------+----------+------+
| 1|Praveen| d1| 30000|
| 2| naveen| d1| 40000|
| 3| pavan| d1| 50000|
+---+-------+----------+------+
在上面的示例中,輸入的前四行是注釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.