gpt4 book ai didi

scala - 如何在 Scala 案例类中转义减号

转载 作者:行者123 更新时间:2023-12-05 01:35:44 25 4
gpt4 key购买 nike

我有一个 parquet 文件,它的列名称中有 - 减号(即 student-name)。我正在尝试使用案例类作为编码器,同时读取如下所示的 Parquet 文件:

case class Student (student-name : String, student_age : String)

object abcd {

val student_details = spark.read.parquet('/path/to/parquet-file').as[Student]

}

但问题是案例类中的减号 - 会抛出错误。我试过用反引号 (`) 括起来,但没有用。请在下面找到错误列表。

没有反引号的错误

 case class Student (student-name : String, student_age : String)

:expected
Wrong top statement declaration

反引号错误

case class Student (`student-name` : String, student_age : String)

cannot resolve '`student$minusname`' given input columns:[student-name,student_age]

如有任何帮助,我们将不胜感激!

谢谢

最佳答案

您无法使用 Spark 读取这些类型的字段,在 Java 中每个无效的名称在尝试通过 Spark 读取时都会出错。这是因为 Spark 在 Java 中生成代码,并且它们在代码生成步骤中使用相同的名称。

我有一个开放的 PR,改进了 Spark 在字段名称以数字开头的情况下给出的错误消息:https://github.com/apache/spark/pull/26319 .

解决方法是按照@Alex Ott 所说,您需要先将列重命名为有效名称,然后再正常读取。

关于scala - 如何在 Scala 案例类中转义减号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62732455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com