NS *_*nan 0 hadoop scala dataframe apache-spark apache-spark-sql
有两个 json,第一个 json 有更多列,并且总是超级集。
val df1 = spark.read.json(sqoopJson)
val df2 = spark.read.json(kafkaJson)
Run Code Online (Sandbox Code Playgroud)
除了操作:
我喜欢在 df1 和 df2 上应用 except 操作,但是 df1 有 10 列而 df2 只有 8 列。如果我手动删除 df1 中的 2 列,则 except 将起作用。但是我有 50 多个表/json,并且需要对所有 50 组表/json 执行 EXCEPT。
题 :
如何仅从 DF1 中选择 DF2 (8) 列中可用的列并创建新的 df3?因此 df3 将拥有来自 df1 的有限列的数据,并且它将与 df2 列匹配。
对于问题: 如何仅从 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 :_*)
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
归档时间: |
|
查看次数: |
2495 次 |
最近记录: |