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