Hive10---explode拆分多行

Intro

    hive explode操作

import pyspark
from pyspark.sql import SparkSession
# 创建SparkSession对象,调用.builder类
# .appName("testapp")方法给应用程序一个名字;.getOrCreate()方法创建或着获取一个已经创建的SparkSession
spark = SparkSession.builder.appName("pysaprk").getOrCreate()
import pyspark.sql.functions
df = spark.createDataFrame([(1, "A,B"),
                            (2, "C,D"),
                            (3, "E")],
                           ["id", "split_str"])
df.show(20,truncate=False)
+---+---------+
|id |split_str|
+---+---------+
|1  |A,B      |
|2  |C,D      |
|3  |E        |
+---+---------+
df.createOrReplaceTempView("temp")

split_str拆分多行

sql = """
select id,split_str,explode(split(split_str,',')) as letter
from temp
"""
spark.sql(sql).show()
+---+---------+---+
| id|split_str|col|
+---+---------+---+
|  1|      A,B|  A|
|  1|      A,B|  B|
|  2|      C,D|  C|
|  2|      C,D|  D|
|  3|        E|  E|
+---+---------+---+

带序号的有序explode

LATERAL VIEW posexplode(data) t2 as pos,j_column

                                2022-03-29 于南京市江宁区九龙湖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值