spark sql将数组数据转为datasetRow
假设有一个数组数据如下:
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)
``
原文地址: https://www.cveoy.top/t/topic/g6cX 著作权归作者所有。请勿转载和采集!