java - 带有各种分隔符的 Spark CSV 到 DataSet
问题描述
我有两个CSV 文件,我正在使用 Spark 和 Java 进行聚合。这些文件有不同的分隔符。
文件 1.dat:
011!345!Ireland
文件2.dat:
022Ç486ÇBrazil
我使用的代码:
Dataset<Row> people = spark.read().format("csv").option("header", "false").option("delimeter", "\u00C7").option("delimeter", "!").load(logFile);
输出:
Error:Cannot resolve column name
如果我删除一个分隔符:
Dataset<Row> people = spark.read().format("csv").option("header", "false").option("delimeter", "\u00C7").load(logFile);
输出:
Sno|code|Country
null|null|null
022|486|Brazil
有没有办法做到这一点?这两个文件可以聚合在同一个火花代码中吗?
解决方案
您不能同时使用多个分隔符。
相反,请分别阅读文件并使用union
( doc ) 将它们合并在一起。例如:
Dataset<Row> people1 = spark.read()
.option("header", "false")
.option("delimeter", "!")
.csv(logFile1);
Dataset<Row> people2 = spark.read()
.option("header", "false")
.option("delimeter", "\u00C7")
.csv(logFile2);
Dataset<Row> people = people1.union(people2);
推荐阅读
- google-cloud-platform - 如何使用无服务器创建相同云功能的开发和生产实例?
- machine-learning - How can I get predictions from these pretrained models?
- c# - 获取 PrintDialog 子级的对话框句柄
- swift - 如何在CoreData中与Swift覆盖合并时防止多对关系NSManagedObject重复?
- bash - Using sed with a regex to replace strings
- javascript - 根据用户输入从表中删除行
- php - 如何使用 php 创建 pgp 密钥?
- android - 在扩展 Handler 的类中,handleMessage 返回的字符串出现奇怪的损坏
- c# - 如何拦截 Android 设备音量增大/减小按钮以在 Xamarin Forms 应用程序中打开相机?
- python - Why is heap slower than sort for K Closest Points to Origin?