在我们的项目中,我们使用一个 ETL
框架(内置 PySpark
)哪个接受 Spark-sql
语句从源代码转换数据并加载 Hive
外部表。
现在,我需要读取一个表,然后选择一列的唯一值,然后动态创建一个包含那么多列的配置单元表。
例如,考虑下表。
第1天:
质量标准:
prsnid | qstn
1 | satisfactory
2 | survey
3 | review
目标表结构:
prsnid | satisfactory | survey | review
第1天:在上面的例子中 3
中的唯一值 qstns
列,因此使用这些列创建输出表 3
值作为列。
在第二天:说出在 qstn
中的列 Qstn_mster
表更改为5(可以增加或减少),这反过来会影响目标表中的列数,现在需要保留这些列 5
柱。
第2天:
质量标准:
prsnid | qstn
1 | satisfactory
2 | survey
3 | review
4 | validity
5 | vote
目标表结构:
prsnid | satisfactory | survey | review | validity | vote
因此,每一天,目标表结构都会动态变化。
使用带有配置单元表的pyspark环境设计/建模此类需求的最佳方法是什么?
请分享你的想法。
1条答案
按热度按时间dluptydi1#
如果目的是对每一列应用一些计算,如计数或distinct等,那么可以使用
pivot
例子:输出:
但如果只是想创建这些列,比如说,现在将它们设置为0,那么:
输出: