Scala 从另一个数据库导入Spark 2中的对象的类型是什么?

Scala 从另一个数据库导入Spark 2中的对象的类型是什么?,scala,apache-spark,apache-spark-sql,spark-dataframe,Scala,Apache Spark,Apache Spark Sql,Spark Dataframe,我将两个表从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.forma

我将两个表从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”和“cities”的类型分别是
customers:Unit=()
城市:单位=()

这里有一些解释如何从Seq()转换到DataFrame的答案,但没有关于Unit到DataFrame的任何内容


这个单位是什么,是RDD、DataSet还是?

这是因为你把
show()
放在了末尾
show()
具有类型
单位
,因此您的
客户
城市
具有类型
单位

你应该写:

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
,然后您可以进一步处理它们