Apache Spark 联接数据集,表具有相同的列名(具有不同的数据)



我想联接多个数据集,这些数据集具有一些具有相同名称的列,同时具有不同的数据。这可以在转换为数据帧时重命名数据集列。但是,是否可以在使用数据集时使用重命名或为列名设置前缀。

Dataset<Row> uct = spark.read().jdbc(jdbcUrl, "uct", connectionProperties);
Dataset<Row> si = spark.read().jdbc(jdbcUrl, "si", connectionProperties).filter("status = 'ACTIVE'");
Dataset<Row> uc = uct.join(si, uct.col("service_id").equalTo(si.col("id")))

UC将具有同名"code">的列,那么很难从UCT.codeSI.code中获取代码值

数据帧是数据集的别名。因此,实际上您在代码中使用了数据帧。如果要保留具有相同名称的两个列,则必须在使用"withColumnRenamed"选项执行连接之前重命名其中一列。

相关内容

  • 没有找到相关文章

最新更新