scala - Scalding:解析带头的逗号分隔数据

标签 scala parsing hadoop mapreduce scalding

我的数据格式为:

"header1","header2","header3",...
"value11","value12","value13",...
"value21","value22","value23",...
....

在 Scalding 中解析它的最佳方法是什么?我总共有50多个专栏,但我只对其中的一些感兴趣。我尝试使用 Csv("file") 导入它,但这不起作用。

想到的唯一解决方案是使用 TextLine 手动解析它并忽略 offset == 0 的行。但我确信一定有更好的解决方案。

最佳答案

最后我通过手动解析每一行解决了这个问题,如下所示:

def tipPipe = TextLine("tip").read.mapTo('line ->('field1, 'field5)) {
line: String => val arr = line.split("\",\"")
  (arr(0).replace("\"", ""), if (arr.size >= 88) arr(4) else "unknown")
}

关于scala - Scalding:解析带头的逗号分隔数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25000142/

相关文章:

scala - 创建 Vaadin-sbt 项目

php - 为什么 file_get_contents 返回奇怪的字符?

html - 使用 Nokogiri 包裹不在 anchor 标记内的文本

java - 使用带引号的多行字符串解析 CSV

hadoop - 如何在 hadoop mapreduce 中进行 lzo 压缩?

date - 如何在 Hadoop Hive 中给定时间戳获取一周第一天的日期?

java - 如何修改 JAR 中包含的文件(该文件是 IntelliJ 中的依赖项)

scala - 如何在 Scala 的 map 上跳过 map 函数中的键

java - Hadoop ArrayWritable 给我一个 ClassCastException

scala - 如何避免在 Scala 中出现关于 for 循环的编译器警告?