scala - java.lang.String 不是字符串模式的有效外部类型

标签 scala dataframe apache-spark

鉴于此,过去似乎已经这样做过,但是......:

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/

相关文章:

java - 运行 apache spark 作业时任务不可序列化异常

scala - 有没有办法将 Dependabot 与 sbt 集成以进行依赖项更新?

scala - 什么时候空的 HList 不是 HList?

r - 在 R 中生成和命名变量的动力转换

apache-spark - 没有后缀的 spark.network.timeout 属性的单位是什么?秒还是毫秒?

scala - 在单元测试中模拟 Spark RDD

scala - 如果我在单行数据 block 笔记本中执行命令会花费更少的时间吗?

scala - 使用 sc.textfile 时读取文本文件的是驱动程序还是 worker ?

python - 在 pandas df.plot 中设置颜色图限制

date - 根据键将 DataFrame 行替换为最新数据