添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
id num
1 001,002,003
2 001,002

转换成

id num
1 001
1 002
1 003
2 001
2 002

使用 lateral view explode() 语法

使用方法是:

select id,num_per
from table1 
lateral view explode(split(num, ',')) tmpTable as num_per
where xx=xx
1. where条件需写到他的后面。
2. 这里的tmpTable指代虚表视图的名称(不可缺少),可以随意命名。
3. as num_per 表示将拆的列命名,在select中使用。
# 元数据 String str= "//@颜渊-公子蝶:恭喜!!//@水城十二呆包子: 芳心纵火犯后继有人!//@安娜_专业土拨鼠:恭喜恭喜!!百万龙虾店少主登场!!//@絶対白2咩黙示録:撒金刚出生了!//@stoness打着哈欠说 :恭喜撒老师!盛世美颜后继有人!//@不能发芽的种子 :恭喜!! //@卡李 :起什么名字?//@麦吉da法好太师囧 : 恭喜撒老" # 要求 按照 ‘/...
|select * from temp_view |lateral view explode(split(field, ',')) tmpTable as result_view """.stripMargin
lateral view与 explode函数按理说是不应该在数据库里存在的,因为他违背了第一范式(每个属性不可再分)。但是实际的场景,如一些大数据场景还是会存在将一些低频使用但又不能丢失的数据json,这种场景下就需要解析json,将里面的数组和多key值展开。 初始化一份数据 # 随意造的一份数据,毫无意义 data = [ "id": 1, import java.sql.DriverManager import scala.collection.mutable.ArrayBuffer import org.apache.spark.SparkContext import org.apache.spark.rdd.JdbcRDD import o...
rdd读取一个文件 val rdd = sc.textFile("hdfs://172.20.20.17:9000/tmp/wht/account/accounts.txt").map(_.split(",")) rdd读取多个文本文件 val rdd = sc.textFile("hdfs://172.20.20.17/tmp/wht/account/accounts.txt,hdfs://...