Spark scala:从其他数据框中选择列名

Spark scala:从其他数据框中选择列名,scala,apache-spark,dataframe,hadoop,apache-spark-sql,Scala,Apache Spark,Dataframe,Hadoop,Apache Spark Sql,有两个json,第一个json有更多的列,并且总是超集 val df1 = spark.read.json(sqoopJson) val df2 = spark.read.json(kafkaJson) 除操作外: 我喜欢在df1和df2上应用except操作,但df1有10列,而df2只有8列。 如果手动从df1中删除2列,则“除外”将起作用。但是我有50多个tables/json,除了所有50组tables/json之外,我还需要做其他事情 问题: 如何从DF1中仅选择DF2(8)列中可用

有两个json,第一个json有更多的列,并且总是超集

val df1 = spark.read.json(sqoopJson)
val df2 = spark.read.json(kafkaJson)
除操作外:

我喜欢在df1和df2上应用except操作,但df1有10列,而df2只有8列。 如果手动从df1中删除2列,则“除外”将起作用。但是我有50多个tables/json,除了所有50组tables/json之外,我还需要做其他事情

问题:


如何从DF1中仅选择DF2(8)列中可用的列并创建新的df3?因此,df3将具有来自df1的有限列的数据,并且它将与df2列匹配。

对于以下问题:如何从df1中仅选择df2(8)列中可用的列并创建新的df3


希望这有帮助

关于以下问题:如何从DF1中仅选择DF2(8)列中可用的列并创建新的df3


希望这有帮助

工作如期进行,非常感谢您的回复工作如期进行,非常感谢您的回复
//Get the 8 column names from df2 
val columns = df2.schema.fieldNames.map(col(_))

//select only the columns from df2 
val df3 = df1.select(columns :_*)