spark读取hive表字段,区分大小写问题

这篇具有很好参考价值的文章主要介绍了spark读取hive表字段,区分大小写问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

spark任务读取hive表,查询字段为小写,但Hive表字段为大写,无法读取数据

问题错误:

spark3 orc 字段名大小写,spark,hive,大数据

如何解决呢?
  • In version 2.3 and earlier, when reading from a Parquet data source table, Spark always returns null for any column whose column names in Hive metastore schema and Parquet schema are in different letter cases, no matter whether spark.sql.caseSensitive is set to true or false. Since 2.4, when spark.sql.caseSensitive is set to false, Spark does case insensitive column name resolution between Hive metastore schema and Parquet schema, so even column names are in different letter cases, Spark returns corresponding column values. An exception is thrown if there is ambiguity, i.e. more than one Parquet column is matched. This change also applies to Parquet Hive tables when spark.sql.hive.convertMetastoreParquet is set to true.
# 在程序或者sql中添加这个参数即可
set spark.sql.caseSensitive = false

参考地址:

Migration Guide: SQL, Datasets and DataFrame - Spark 3.2.0 Documentation 文章来源地址https://www.toymoban.com/news/detail-817370.html

到了这里,关于spark读取hive表字段,区分大小写问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【现场问题】flink-cdc,Oracle2Mysql的坑,Oracle区分大小写导致

    Column ‘id’ is NOT NULL, however, a null value is being written into it. You can set job configuration ‘table.exec.sink.not-null-enforcer’=‘DROP’ to suppress this exception and drop such records silently 大致意思就是不能插入为空的数值。 为什么会报这个错误,我们来看DML的执行语句: insert into t_wx_target select

    2024年02月12日
    浏览(34)
  • MySQL:区分大小写

    本文有点不准,仅作参考;可以使用MySQL的大小写相互转换,再拼接or来规避 查看MySQL版本 show variables;  1、查看 MySQL 当前的区分大小写设置: SHOW VARIABLES LIKE \\\'lower_case_table_names\\\'; 或者 show Variables like \\\'%table_names\\\' 2、更改大小写敏感设置: 在 MySQL 5.7 中,更改大小写敏感设置要

    2024年02月03日
    浏览(56)
  • mysql 索引 区分字符大小写

    mysql 建立索引,特别是unique索引,是跟字符集、字符排序规则有关的。 对于utf8mb4_0900_ai_ci来说,0900代表Unicode 9.0的规范,ai表示accent insensitivity,也就是“不区分音调”,而ci表示case insensitivity,也就是“不区分大小写”。 上述这种数据,如果选了  那么会报错,因为mysql认

    2024年02月12日
    浏览(38)
  • MySQL | MySQL不区分大小写配置

    MySQL 表内数据条件查询不区分大小写是因为排序规则的问题. 在MySQL中,InnoDB存储引擎默认的字符集是utf8,utf8mb4等,这些字符集再存储数据时没有指定排序规则的话,会默认使用 utf8_general_ci或utf8mb4_general_ci 作为表的排序规则,那么该表内的数据讲不区分大小写,这两种排序规则都是

    2024年02月04日
    浏览(30)
  • mysql设置不区分表名大小写

    MySql默认是区分表名大小的,为了不区分表名大小写,我们需要完成以下配置 十分简单 1.使用root用户,修改/etc/my.cnf文件 在[mysqld]下添加 lower_case_table_names=1 2.重启mysql service mysqld restart 这样就可以执行查询看结果啦

    2024年02月15日
    浏览(33)
  • es-已有mapping,实现查询不区分大小写

    一、写在前面 es查询默认区分大小写 二、实现原理 normalizer 是  keyword 的一个属性 参考 听说你还没掌握 ElasticSearch Normalizer 的使用方法?_yinni11的博客-CSDN博客 二、实现区分大小写的三种方案  方案一:直接创建对应的mapping 适用于还没有创建mapping的场景  方案二:新建map

    2024年01月19日
    浏览(36)
  • R语言【utils】——read.table():以表格式读取文件,并从中创建一个数据帧,其中大小写对应于行,变量对应于文件中的字段。

    Package  utils  version 4.2.0 参数【file】 :要从中读取数据的文件的名称。表的每一行为文件的一行。如果不包含绝对路径,则文件名相对于当前工作目录 getwd() 。在支持的地方执行波浪运算符扩展。这可以是一个压缩文件。或者, 参数【file】 可以是一个可读的文本模式连接

    2024年02月02日
    浏览(35)
  • 接口请求与对象转json中字段大小写的处理

    》前端请求对象字段为大写 》后端接受对象字段也为大写 前后端对象字段一模一样,就是接受不到前端传过来的值,针对这种情况,只需在后端对象中加 @JsonProperty(\\\"Id\\\") 即可 如下所示: 1)通过 com.fasterxml.jackson.databind.ObjectMapper 去转换,具体代码如下 2、 第二种通过gson去转

    2024年04月23日
    浏览(27)
  • posgresql通过PL/pgSQL脚本统一修改某字段大小写

    项目在做postgresql数据库适配时遇到了某些问题,需要统一将某个模式含id字段的全部表,将id字段由小写转换为大写,可以通过PL/pgSQL脚本实现。 先确保当前用户有足够的权限 同理,可以更换为其他字段

    2024年02月11日
    浏览(26)
  • DataGrip测试连接时报错: MySQL (无版本)区分大小写: 普通形式=mixed, 分隔形式=exactConnection refused: connect.

    问题: DataGrip测试连接时报错: MySQL (无版本)区分大小写: 普通形式=mixed, 分隔形式=exactConnection refused: connect. 解决: 查看一下mysql是都还开着 步骤:Win + R 打开运行窗口,输入 services.msc 后敲击回车键或点击确认。寻找 MySQL 服务,点击 启动此服务即可开启该服务。

    2024年02月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包