我希望连接多个数据集,这些数据集具有一些具有相同名称的列,同时具有不同的数据。这可以在转换为dataframe时重命名数据集列。但是在使用数据集时是否可以使用重命名或为列名设置前缀。
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 将包含同名&#39; code&#39; 的列,然后很难从 uct.code获取代码值或 si.code
答案 0 :(得分:1)
Dataframe是Dataset的别名。所以实际上你在代码中使用了一个数据帧。如果要保留两个具有相同名称的列,则必须在使用“withColumnRenamed”选项执行连接之前重命名其中一列。