鉴于此,过去似乎已经这样做过,但是......:
val arrayStructData2 = Seq(
Row("James", 2),
Row("Alex", 3)
)
val arrayStructSchema2 = new StructType()
.add("names",new StructType()
.add("name", StringType)
.add("extraField", IntegerType)
)
val df = spark.createDataFrame(spark.sparkContext.parallelize(arrayStructData2),arrayStructSchema2)
df.printSchema()
df.show()
我明白了:
...
Caused by: RuntimeException: java.lang.String is not a valid external type for schema of struct<name:string,extraField:int>
无法立即看到。
最佳答案
对于其他人,作为提醒,需要 Row(Row... 如:
val arrayStructData2 = Seq(
Row(Row("James", 2)),
Row(Row("Alex", 3))
)
恕我直言,不是那么明显的错误。
关于scala - java.lang.String 不是字符串模式的有效外部类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69516036/