Я пытаюсь запустить следующий код
SparkSession spark = SparkSession
.builder()
.appName("test")
.master("local")
// .enableHiveSupport()
.getOrCreate();
List<String> list=new ArrayList<String>();
list.add("HI");
list.add("HI");
list.add("HI");
Dataset<Row> dataDs = spark.createDataset(list, Encoders.STRING()).toDF();
List<String> list2=new ArrayList<String>();
list2.add("1");
list2.add("2");
list2.add("3");
Dataset<Row> dataDs2 = spark.createDataset(list2, Encoders.STRING()).toDF().withColumnRenamed("value","newvalue");
Column col=dataDs2.col("newvalue");
dataDs=dataDs.withColumn("newcol",col);
dataDs.show();
Однако появляется ошибка, сообщающая, что
Исключение в потоке "главная" организация. apache. spark. sql .AnalysisException: разрешенные атрибуты (новые значения) # 10 отсутствуют в значении # 1 в операторе! Project [значение # 1, новое значение # 10 AS newcol # 13] ;; ! Project [значение # 1, новое значение # 10 AS newcol # 13]
Когда я искал об этом в Интернете, он говорит, что может быть случай с дублирующимися именами столбцов. Тем не менее, мои имена столбцов разные. dataDs имеет имя столбца как «значение», а dataDs2 имеет имя столбца «новое значение». Итак, я не понимаю, почему ошибка все еще происходит. Кто-нибудь может мне помочь?