【发布时间】:2020-11-03 23:12:57
【问题描述】:
有很多关于如何使用 Spark Scala/Python 创建空数据帧/数据集的示例。但我想知道如何在 Java Spark 中创建一个空的数据框/数据集。
我必须创建一个空数据框,其中只有一列,标题为 Column_1 并键入 String。
【问题讨论】:
标签: java dataframe apache-spark
有很多关于如何使用 Spark Scala/Python 创建空数据帧/数据集的示例。但我想知道如何在 Java Spark 中创建一个空的数据框/数据集。
我必须创建一个空数据框,其中只有一列,标题为 Column_1 并键入 String。
【问题讨论】:
标签: java dataframe apache-spark
user defined schema 创建empty dataframe
// alternative - 1
StructType s = new StructType()
.add(new StructField("Column_1", DataTypes.StringType, true, Metadata.empty()));
Dataset<Row> csv = spark.read().schema(s).csv(spark.emptyDataset(Encoders.STRING()));
csv.show(false);
csv.printSchema();
/**
* +--------+
* |Column_1|
* +--------+
* +--------+
*
* root
* |-- Column_1: string (nullable = true)
*/
null 值和user defined schema 创建数据框
Dataset<Row> df4 = spark.sql("select cast(null as string) Column_1");
df4.show(false);
df4.printSchema();
/**
* +--------+
* |Column_1|
* +--------+
* |null |
* +--------+
*
* root
* |-- Column_1: string (nullable = true)
*/
ClassTag<Row> rowTag = scala.reflect.ClassTag$.MODULE$.apply(Row.class);
Dataset<Row> df5 = spark.createDataFrame(spark.sparkContext().emptyRDD(rowTag),
new StructType()
.add(new StructField("Column_1", DataTypes.StringType, true, Metadata.empty())));
df5.show(false);
df5.printSchema();
/**
* +--------+
* |Column_1|
* +--------+
* +--------+
*
* root
* |-- Column_1: string (nullable = true)
*/
spark.emptyDataframe 创建没有任何列和值的数据框 Dataset<Row> rowDataset = spark.emptyDataFrame();
rowDataset.show(false);
rowDataset.printSchema();
/**
* ++
* ||
* ++
* ++
*
* root
*/
【讨论】: