gpt4 book ai didi

java - 通过在两列之间添加空列来使用现有数据集创建新数据集

转载 作者:行者123 更新时间:2023-11-29 08:24:44 24 4
gpt4 key购买 nike

我通过读取 csv 文件使用 Java 在 Spark 中创建了一个数据集。以下是我的初始数据集:

+---+----------+-----+---+
|_c0| _c1| _c2|_c3|
+---+----------+-----+---+
| 1|9090999999|NANDU| 22|
| 2|9999999999| SANU| 21|
| 3|9999909090| MANU| 22|
| 4|9090909090|VEENA| 23|
+---+----------+-----+---+

我想按如下方式创建数据框(一列具有空值):

+---+----+--------+
|_c0| _c1| _c2|
+---+----|--------+
| 1|null| NANDU|
| 2|null| SANU|
| 3|null| MANU|
| 4|null| VEENA|
+---+----|--------+

以下是我现有的代码:

Dataset<Row> ds  = spark.read().format("csv").option("header", "false").load("/home/nandu/Data.txt");
Column [] selectedColumns = new Column[2];
selectedColumns[0]= new Column("_c0");
selectedColumns[1]= new Column("_c2");
ds2 = ds.select(selectedColumns);

这将创建如下数据集。

+---+-----+
|_c0| _c2|
+---+-----+
| 1|NANDU|
| 2| SANU|
| 3| MANU|
| 4|VEENA|
+---+-----+

最佳答案

要选择您想要的两列并添加一个包含空值的新列,您可以使用以下命令:

import org.apache.spark.sql.functions.*;
import org.apache.spark.sql.types.StringType;

ds.select({col("_c0"), lit(null).cast(DataTypes.StringType).as("_c1"), col("_c2")});

关于java - 通过在两列之间添加空列来使用现有数据集创建新数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54034155/

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