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`。此案例提醒在建表时需谨慎选择字段分隔符。