scala - 在数据框的一行中创建一个结构字段
问题描述
我有下面的代码,我试图创建一个带有结构字段的 Spark DataFrame。我应该???
用什么来代替它才能工作。
import org.apache.spark.sql.types._
import org.apache.spark.sql.{DataFrame, Row, SparkSession}
val spark: SparkSession = SparkSession.builder()
.appName("NodesLanesTest")
.getOrCreate()
val someData = Seq(
Row(1538161836000L, 1538075436000L, "cargo3", 3L, ???("Chicago", "1234"))
)
val someSchema = StructType(
List(
StructField("ata", LongType, nullable = false),
StructField("atd", LongType, nullable = false),
StructField("cargo", StringType, nullable = false),
StructField("createdDate", LongType, nullable = false),
StructField("destination",
StructType(List(
StructField("name", StringType, nullable = false),
StructField("uuid", StringType, nullable = false)
))))
val someDF = spark.createDataFrame(
spark.sparkContext.parallelize(someData),
StructType(someSchema)
)
解决方案
您缺少一个 Row 对象。Row
当您从对象序列创建数据框时,应将StructType
其表示为Row
对象,因此它必须为您工作:
val someData = Seq(
Row(1538161836000L, 1538075436000L, "cargo3", 3L, Row("Chicago", "1234"))
)
希望能帮助到你。
推荐阅读
- sas - 先说SAS怎么用。与 NOTSORTED
- visual-studio - 项目的 Visual Studio 自定义起始页
- c# - 'await' 之后的代码可以在 ASP.NET 的不同线程中运行吗?
- python - 要求用户输入某些信息
- mysql - MySql插入多个并忽略重复记录
- r - 多序列比对 R
- uml - 在 doxygen 降价页面中使用 UML
- excel - 如何让清洁功能更高效?
- python - 在python中将PNG转换为JPG
- browser - Appium:无法通过 ID 和名称在 Android chrome 浏览器中找到元素,得到“InvalidArgumentException”