gpt4 book ai didi

java - 已解决 Java Spark 中缺少属性 newvalue#10

转载 作者:行者123 更新时间:2023-12-01 17:41:05 28 4
gpt4 key购买 nike

我正在尝试运行以下代码

        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();

但是,会弹出一个错误,指出

Exception in thread "main" org.apache.spark.sql.AnalysisException: resolved attribute(s) newvalue#10 missing from value#1 in operator !Project [value#1, newvalue#10 AS newcol#13];; !Project [value#1, newvalue#10 AS newcol#13]

当我在网上搜索它时,它说可能存在重复的列名的情况。但是,我的列名称不同。 dataDs 的列名称为“value”,而 dataDs2 的列名称为“newvalue”。所以,我不明白为什么错误仍然发生。有人可以帮我吗?

最佳答案

问题出在这里:

Column col=dataDs2.col("newvalue");
dataDs=dataDs.withColumn("newcol",col);

col是dataDs2()中的一列,您不能在dataDS中使用它。

看起来您想 zip() 两个数据帧。有 RDD.zip() 函数。在这里查看更多方法:How to zip two (or more) DataFrame in Spark

关于java - 已解决 Java Spark 中缺少属性 newvalue#10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60948448/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com