Scala 从另一个数据库导入Spark 2中的对象的类型是什么?
我将两个表从oracle导入Spark,如下所示: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
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
,然后您可以进一步处理它们