Java Apache spark数据帧列名不一致,为什么会发生这种情况?

Java Apache spark数据帧列名不一致,为什么会发生这种情况?,java,apache-spark,apache-spark-sql,Java,Apache Spark,Apache Spark Sql,在ApacheSpark站点上执行类似的操作时,我的JavaBean类生成的列在区分大小写方面不匹配。有些以首字母大写开头,有些则不以首字母大写开头,没有一致性或模式 我做了一些与该指南不同的事情,即: 私有成员被命名为“mName”,而不仅仅是“name”,它们的getter/setter是getName setName 我使用的数据类型是整数、字符串和时间戳 所以 通过反思,它到底是如何得到这些名字的?它是否使用get/set函数名并截断get和set部分 有没有办法禁用区分大小写的功能

在ApacheSpark站点上执行类似的操作时,我的JavaBean类生成的列在区分大小写方面不匹配。有些以首字母大写开头,有些则不以首字母大写开头,没有一致性或模式

我做了一些与该指南不同的事情,即:

  • 私有成员被命名为“mName”,而不仅仅是“name”,它们的getter/setter是getName setName
  • 我使用的数据类型是整数、字符串和时间戳
所以

  • 通过反思,它到底是如何得到这些名字的?它是否使用get/set函数名并截断get和set部分
  • 有没有办法禁用区分大小写的功能 至于我为什么不显示我的任何代码。这是为了工作,所以我想避免展示我不应该展示的东西

    --更新-------------------------

    因此,该名称似乎基于get和set函数。将set/getStartTime更改为set/getStartTime会导致startTime变为startTime。然而,我仍然会遇到这样的情况:get/setITrN有一列ITrN,它保留了大写的第一个字母,而startTime这样的列则没有

    --更新#2-------------------------


    在玩弄了这些名字之后,似乎决定因素是Spark是否认为这个名字是首字母缩略词(全部大写)、一个单词或一个字母。如果它以一个单词或一个字母开头,它将使其小写。作为一种解决方法,我只是从“_u3;”开始。无论如何如果有人知道如何在查询时禁用区分大小写,请告诉我。

    根据我对它的介绍,只有当首字母大写的名称后面没有另一个大写字母时,它才会变成小写。因此,MMark保持MMark,而Mark因此转向Mark。我猜这是为了在创建get/set方法时解释camel-case的情况,在这个方法中,希望有一个'name'变量的人将其作为setName和getName写入,以提高camel-case的可读性。

    它可能像JPA那样使用getter和setter,正如JavaBeans所描述的那样。您可能可以通过查询来查看表,以确定哪些是您的列。对于一般开发,请考虑使用约定来命名属性。如果您不能显示所有代码,至少向我们显示查询或其他内容,以便我们提供帮助