我在scala中的spark数据帧有问题。我正在使用方法var df = spark.read.format("csv").load("csvfile.csv")
读取CSV文件并将其存储在DF中。我的CSV文件中有16行我不想阅读的注释。我还没有发现避免标头的表达方式,但是它只有一行。任何想法?
谢谢。
答案 0 :(得分:0)
以下solution1仅适用于仅以一个常见符号/字母开头的注释。 solution2适用于解决方案列表中添加的所有符号。
解决方案1:
如果所有注释均以通用字母/符号/数字开头,请在此答案的键option
的{{1}}值中输入该符号。
Apache Spark Dataframe - Load data from nth line of a CSV file
但是,如果某些注释以与其余注释不同的符号开头,则将无法解决问题。
解决方案2:
在此解决方案中,我删除了以符号comment
,*
和数字/
开头的行。根据实际评论的开头字母替换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
在上面的示例中,输入的前四行是注释。