首页 > 解决方案 > spark读取csv中的重复列名

问题描述

我读了 csv 文件,它有一个重复的列。

我想在数据框中保留列的名称。

我尝试在我的 sparkcontext conf spark.sql.caseSensitive中添加此选项并将其设置为true,但不幸的是它没有效果。

重复的列名称是 NU_CPTE。Spark 尝试通过添加第 0、7 列的数量来重命名它

NU_CPTE0|CD_EVT_FINANCIER|TYP_MVT_ELTR|DT_OPERN_CLI|LI_MVT_ELTR| MT_OPERN_FINC|FLSENS|NU_CPTE7

SparkSession spark= SparkSession
                .builder()
                .master("local[2]")
                .appName("Application Test")
                .getOrCreate();    

spark.sparkContext().getConf().set("spark.sql.caseSensitive","true"); 

Dataset<Row> df=spark.read().option("header","true").option("delimiter",";").csv("FILE_201701.csv");

df.show(10);

我想要这样的结果:

NU_CPTE|CD_EVT_FINANCIER|TYP_MVT_ELTR|DT_OPERN_CLI|LI_MVT_ELTR| MT_OPERN_FINC|FLSENS|NU_CPTE

标签: javaapache-spark-sql

解决方案


Spark 已修复以允许附加数字的重复列名。因此,您将获得附加到重复列名的数字。请找到以下链接

https://issues.apache.org/jira/browse/SPARK-16896


推荐阅读