这个问题在这里已经有答案了:
如何拆分每6个字符的列数据并在bigquery中形成一行(2个答案)
上个月关门了。
作为gcp迁移的一部分,我需要将简单的spark语句迁移到bigquery中。一个表包含两列,需要根据spark语句将它们拆分为bigquery。
Spark中:
t1 = spark.sql("select col1,col2 from db.table") df1 = t1.withColumn("col2",explode(split(col("col2"), "(?<=\\G......)"))).withColumn("col2",trim(col("col2")))
输入表:
+----+----------------------+
|col1| col2|
+----+----------------------+
|d1|X11 F11 1000KG123456|
|d2|X22 F22 3500Kabcdefgh|
预期产量:
+------------+
|col1|col2|
+------------+
|d1| X11|
|d1| F11|
|d1| 1000KG|
|d1| 123456|
|d2| X22|
|d2| F22|
|d2| 3500Ka|
|d2| bcdefg|
|d2| h|
实际上col2的值很大“x11 f11 1000kg123456…………”。在col2中,我们需要考虑每个6个字符的数据。我尝试了几个问题,但没有成功。有人能建议相关的bigquery转换spark语句吗?请求建议泛型查询,因为我有很多记录。
1条答案
按热度按时间omtl5h9j1#
使用unnest和split: