【问题标题】:Process each comma seperated value in an RDD处理 RDD 中的每个逗号分隔值
【发布时间】:2017-03-14 18:45:59
【问题描述】:

我想用逗号分隔值处理 RDD 中的每一行。我想要实现的是将所有接近零的值设置为实际零。这就是我所做的。

   val newRDD = oldRDD
      .map (line => line.split(","))
      .map (line => for(value <- line) {
        if(value.toDouble >= -0.01 && value.toDouble <= 0.01)
            0.toString()
          else
            value
        }
      )

我得到的只是所有行的括号 ()。我犯了一些愚蠢的错误吗?

谢谢。

【问题讨论】:

    标签: scala apache-spark rdd


    【解决方案1】:

    您应该添加 yield 关键字,这样您将标记该 for 循环返回值列表:

    .map (line => for(value <- line) yield {
            if(value.toDouble >= -0.01 && value.toDouble <= 0.01)
                "0"
              else
                value
            })
    

    您可以阅读它:对于 line 集合中的每个值,返回 - yield 值:如果 // 等

    您也可以使用 DataFrame API 来加载逗号分隔的文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      相关资源
      最近更新 更多