SPARK:在目录下读取的文件和一些缺少带有标题列的列的文件

时间:2018-04-27 03:45:56

标签: csv pyspark

我在目录下有4个文件,一个文件缺少一个包含该列数据的列

但是当我加载到火花DF时,它没有添加第二列而没有填充空白

                    file1.csv
                    name| first|second|
                    female|   raj| tarun|

                    file2.csv
                    name| first|second|
                    female|   raj| tarun|

                    file3.csv
                    name| first|second|
                    female|   raj| tarun|


                    file4.csv
                    name| second|
                    female|  tarun|





                    from pyspark.sql import SQLContext
                    sqlContext = SQLContext(sc)
                    from pyspark import SparkConf, SparkContext



                    un = sqlContext.read.format('com.databricks.spark.csv').options(header='true', inferschema='true').option("delimiter",",").load('/dir/test/')
                    un.show()
                    un.registerTempTable("un1")


                    queryresult1 = sqlContext.sql("select DISTINCT hashedId from un1   ")


                    queryresult1.show()


                    Output is :  why second column is not filling with nul and third column did not shifted

                    +------+------+------+
                    |  name| first|second|
                    +------+------+------+
                    |female|   raj| tarun|
                    |female|   raj| tarun|
                    |female|   raj| tarun|
                    |  name|second|  null|
                    |female| tarun|  null|

我在目录下有4个文件,一个文件缺少一个包含该列数据的列

但是当我加载到火花DF时,它没有添加第二列而没有填充空白

1 个答案:

答案 0 :(得分:0)

没有完全检查过,但下面的代码应该让你开始:

RRP$

说明:作为RDD读入并在管道分隔符上拆分。过滤以消除每个分区中的标题行。然后,在缺少列的情况下(即rdd元素的长度为2),填充空值。最后转换为数据帧。