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

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将数组数据转为datasetRow

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

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