假设有一个数组数据如下:

val arr = Array(
  Array(1, 'John', 25),
  Array(2, 'Bob', 30),
  Array(3, 'Mary', 35)
)

可以使用sparkSession.createDataFrame方法将数组转换为DataFrame:

import org.apache.spark.sql.types._

val schema = StructType(
  Seq(
    StructField('id', IntegerType, true),
    StructField('name', StringType, true),
    StructField('age', IntegerType, true)
  )
)

val df = sparkSession.createDataFrame(
  sparkContext.parallelize(arr).map(row => Row.fromSeq(row)),
  schema
)

然后,可以使用df.collectAsList()方法将DataFrame转换为一个包含多个Row对象的List,进而使用sparkSession.createDataset方法将List转换为Dataset[Row]:

import scala.collection.JavaConversions._

val rowList = df.collectAsList()
val ds = sparkSession.createDataset(rowList)
Spark SQL: 将数组数据转换为 Dataset[Row]

原文地址: https://www.cveoy.top/t/topic/oAPl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录