【问题标题】:What is the type of an object imported from another database into Spark 2? [duplicate]从另一个数据库导入 Spark 2 的对象的类型是什么? [复制]
【发布时间】:2018-02-15 14:25:27
【问题描述】:

我将两个表从 oracle 导入 Spark,如下所示:

val customers = spark.read.format("jdbc").option("url", "jdbc:oracle:thin:user/password@//IP:2222/ebe").option("driver", "oracle.jdbc.OracleDriver").option("dbtable", "customers").load().show()

val cities = spark.read.format("jdbc").option("url", "jdbc:oracle:thin:user/password@//IP:2222/ebe").option("driver", "oracle.jdbc.OracleDriver").option("dbtable", "cities").load().show()

这些表应该稍后通过“ID”连接起来,如下所示:

val df = customers.join(cities, customers.col("ID") === cities.col("ID"))

问题是对象“客户”和“城市”的类型分别是customers: Unit = () cities: Unit = ()

这里有解释如何从 Seq() 转换为 DataFrame 的答案,但没有关于 Unit 到 DataFrame 的说明。

这个Unit是什么,是RDD、DataSet还是?

【问题讨论】:

    标签: scala apache-spark apache-spark-sql spark-dataframe


    【解决方案1】:

    这是因为你把show() 放在最后。 show() 具有 Unit 类型,因此您的 customerscities 具有 Unit 类型。

    你应该写:

    val customers = spark.read.format("jdbc").option("url", "jdbc:oracle:thin:user/password@//IP:2222/ebe").option("driver", "oracle.jdbc.OracleDriver").option("dbtable", "customers").load()
    val cities = spark.read.format("jdbc").option("url", "jdbc:oracle:thin:user/password@//IP:2222/ebe").option("driver", "oracle.jdbc.OracleDriver").option("dbtable", "cities").load()
    

    那么它们应该是DataFrame 或一些Dataset,然后您可以进一步处理。

    【讨论】:

      猜你喜欢
      • 2017-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      • 2015-08-15
      • 1970-01-01
      相关资源
      最近更新 更多