【问题标题】:Weird implicit convert issue in spark 1.6 of scala 2.10 [duplicate]scala 2.10的spark 1.6中奇怪的隐式转换问题[重复]
【发布时间】:2018-07-10 15:49:54
【问题描述】:

以下是示例代码,仅当我将这两段代码放在 spark shell 中时才会发生。它也只发生在 spark 1.6 和 scala 2.10 上。我想这是scala 2.10的问题。有谁知道根本原因。谢谢

case class Bank(
  age: Integer,
  job: String,
  marital: String,
  education: String,
  balance: Integer
)

val bank = 
  bankText.
    map(s => s.split(";")).
    filter(s => s(0) != "\"age\"").
    map(
      s =>
        Bank(
          s(0).toInt,
          s(1).replaceAll("\"", ""),
          s(2).replaceAll("\"", ""),
          s(3).replaceAll("\"", ""),
          s(5).replaceAll("\"", "").toInt
        )
    ).toDF()

错误:

error: value toDF is not a member of org.apache.spark.rdd.RDD[Bank]
possible cause: maybe a semicolon is missing before `value toDF'?
       ).toDF()
         ^

【问题讨论】:

标签: scala apache-spark


【解决方案1】:

这是一个未解决的隐式问题。 .toDF() 在 spark 源中的 DatasetHolder 中定义。

将案例类移到您尝试 toDF 的方法之外,

case class Bank(???)

那么,在你的方法中,

import sparkSession.implicits._
val rdd: RDD[Bank] = ???

rdd.toDF()

注意,toDF 与大括号一起使用。

更多信息请点击此处:https://issues.scala-lang.org/browse/SI-6649

【讨论】:

  • 如果有帮助,请将其标记为已接受。谢谢
猜你喜欢
  • 2013-06-11
  • 1970-01-01
  • 2012-01-02
  • 2019-04-01
  • 2012-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多