我需要在测试中创建一个Dataframe。我尝试了以下代码:
StructType structType = new StructType();
structType = structType.add("A", DataTypes.StringType, false);
structType = structType.add("B", DataTypes.StringType, false);
List<String> nums = new ArrayList<String>();
nums.add("value1");
nums.add("value2");
Dataset<Row> df = spark.createDataFrame(nums, structType);
预期结果是:
+------+------+
|A |B |
+------+------+
|value1|value2|
+------+------+
但不被接受。如何启动Dataframe/数据集?
2条答案
按热度按时间eit6fx6z1#
对于spark 3.0及之前的版本,
SparkSession
示例没有从对象列表和StructType
.但是,有一种方法可以从行列表和
StructType
. 因此,要使代码正常工作,必须更改nums
从键入ArrayList<String>
至ArrayList<Row>
. 您可以使用rowfactory执行此操作:如果要向Dataframe中添加更多行,只需添加其他行:
9lowa7mx2#
所以这是更干净的做事方式。
步骤1:为自定义类创建bean类。确保有public getter、setter和all args构造函数,并且类应该实现serializable
步骤2:生成数据
步骤3:将其转换为rdd
步骤4:将其转换为数据集
步骤5:查看结果