Hive 求多个字段的中位数(按行求中位数)
在项目中遇到按行求中位数的Hive需求,本文通过创建测试数据,展示解决方案。首先使用`lateral view`和`explode`将多字段行转为列,然后通过`percentile`函数计算每行数据的中位数,最终得到结果。该方法适用于将行转为列处理复杂需求,欢迎探讨更优解。
使用 Spark 抽取 MySQL 数据到 Hive 时某列字段值出现异常(字段错位)
在 MySQL 的 `order_info` 表中,包含 `order_id` 等5个字段,主要存储订单信息。执行按 `create_time` 降序的查询,显示了部分结果。在 Hive 中复制此表结构时,所有字段除 `order_id` 外设为 `string` 类型,并添加了 `etl_date` 分区字段。然而,由于使用逗号作为字段分隔符,当 `address` 字段含逗号时,数据写入 Hive 出现错位,导致 `create_time` 值变为中文字符串。问题解决方法包括更换字段分隔符或使用 Hive 默认分隔符 `\u0001`。此案例提醒在建表时需谨慎选择字段分隔符。
DataGrip 配置 HiveServer2 远程连接访问(含账号密码验证)
该文档介绍了如何为HiveServer2配置账号密码鉴权。提供了一个名为`CustomPasswdAuthenticator`的Java类实现`PasswdAuthenticationProvider`接口,用于验证HiveServer2的用户名和密码。此外,还给出了相关依赖的Maven配置,并说明了如何将编译后的Jar包放入Hive的库中。在Hive的`hive-site.xml`和Hadoop的`core-site.xml`中需配置相应的参数以启用自定义认证。文档还列举了可能遇到的问题及解决方法,包括权限问题、数据插入错误和JVM内存溢出。