Java 在Apache Spark中解析Linux上的Windows CSV

Java 在Apache Spark中解析Linux上的Windows CSV,java,apache-spark,codepages,Java,Apache Spark,Codepages,我试图使用ApacheSpark解析来自Linux机器上Windows机器的CSV文件,但重音字符似乎无法识别 Dataset<Row> df = spark .read() .format("csv") .option("header", "true") .option("inferSchema", "true") .load("file.csv"); Dataset df=spark .读() .格式(“csv”) .选项(“标题”、“正

我试图使用ApacheSpark解析来自Linux机器上Windows机器的CSV文件,但重音字符似乎无法识别

Dataset<Row> df = spark
    .read()
    .format("csv")
    .option("header", "true")
    .option("inferSchema", "true")
    .load("file.csv");
Dataset df=spark
.读()
.格式(“csv”)
.选项(“标题”、“正确”)
.选项(“推断模式”、“真”)
.load(“file.csv”);

看起来你就快到了。尝试:

Dataset<Row> df = spark
    .read()
    .format("csv")
    .option("header", "true")
    .option("inferSchema", "true")
    .option("encoding", "cp1252")
    .load("file.csv");
Dataset df=spark
.读()
.格式(“csv”)
.选项(“标题”、“正确”)
.选项(“推断模式”、“真”)
.选项(“编码”、“cp1252”)
.load(“file.csv”);

您可以指定
编码
作为选项。对于Windows,它是cp1252。

另一种方法是在文件被带到linux后,从
终端中对该文件运行
dos2unix
命令

dos2unix


这将确保从文件中删除回车字符,并使其对linux友好。

cp1252=Windows?很可能。。。特别是如果您的文件来自Excel。