写出Hive中split、coalesce及collect_list函数的用法 ?

  1. split函数

split 函数用于将字符串按照指定的分隔符拆分成数组。它的语法如下:

split(string str, string pattern)

其中,str 是要拆分的字符串,pattern 是分隔符的模式。

例子
假设有一个名为 users 的表,其中有一个名为 email 的列,包含用户的电子邮件地址。如果我们想将每个电子邮件地址拆分成单独的地址,可以使用 split 函数:

SELECT split(email, '@') AS email_parts FROM users;

这将返回一个包含两个元素的数组:电子邮件地址的前缀和后缀。

  1. coalesce函数

coalesce 函数用于返回参数列表中的第一个非空值。它的语法如下:

coalesce(expression1, expression2, ..., expressionN)

当参数列表中的某个表达式为 NULL 时,coalesce 函数将返回下一个表达式的值,直到找到第一个非空值为止。如果没有非空值,则返回 NULL。

例子
假设有一个名为 products 的表,其中有一个名为 price 的列和一个名为 discounted_price 的列。如果某个产品没有折扣价格(即 discounted_price 为 NULL),我们想使用正常的价格,可以使用 coalesce 函数:

SELECT coalesce(discounted_price, price) AS final_price FROM products;

这将返回 discounted_priceprice 中的非空值作为最终价格。

  1. collect_list函数

collect_list 函数用于将多行数据中的某一列值聚合在一起形成一个数组。它的语法如下:

collect_list(col)

其中,col 是要聚合的列名。

例子
假设有一个名为 orders 的表,其中有一个名为 product_id 的列,表示订单中的产品。我们想将所有订单中的产品 ID 聚合到一个数组中,可以使用 collect_list 函数:

SELECT collect_list(product_id) AS product_ids FROM orders;

这将返回一个包含所有产品 ID 的数组。

发表评论

后才能评论