【问题标题】:Maniputale CSV with scala spark使用 scala spark 操作 CSV
【发布时间】:2016-02-24 13:23:53
【问题描述】:

我有一个“半结构化”的 csv 文件

canal,username,email,age
facebook,pepe22,anyemail@gmail.com,24
twitter,foo-24,anyemail@gmail.com,33
facebook,caty24,,22

假设我希望将第一列第二列和第三列放入 RDD org.apache.spark.rdd.RDD[(String, String, String)]

我是新人,我用的是 spark 1.4.1,我的代码到这里

val rdd = sc.textFile("/user/ergorenova/socialmedia/allus/test").map(_.split(","))

有人可以帮我吗?

我会很感激的

【问题讨论】:

标签: scala apache-spark


【解决方案1】:
val rdd = sc.textFile("/user/ergorenova/socialmedia/allus/test")
            .map( _.split(",",-1) match {

               case Array(canal, username, email) => (canal, username, email)

               case Array(canal, username, email, age) => (canal, username, email)
            })

你会得到一个由第一列、第二列和第三列组成的元组。

【讨论】:

  • 非常感谢,但是现在我有其他问题,如果我没有最后一个元素,例如没有年龄,代码失败,我该如何解决这个问题?
  • 第二行出现错误 "not found: value age" ,另一种方式?感谢回复
  • 如果用“case Array(canal, username, email) => (canal, username, "")" 有效,这个解决方案对吗??
  • 对不起,最后一部分应该是电子邮件而不是年龄。我把它们混合在一起。
  • 没问题,问题是现在我想要年龄,而我在这个文件的一个记录中没有这些数据,我有一个错误。
猜你喜欢
  • 1970-01-01
  • 2020-01-04
  • 2018-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多