我有一个包含N
列的表,我想将它们全部连接到一个字符串列,然后对该列执行哈希。 I have found a similar question in Scala.
理想情况下,我想完全在Spark SQL内完成此操作,但是我尝试了HASH(*) as myhashcolumn
,但是由于某些列有时为null,因此无法按预期进行此工作。
如果必须创建一个UDF并注册它才能实现此目的,则我需要使用Python而不是Scala,因为我所有其他代码都在Python中。
有什么想法吗?
答案 0 :(得分:2)
尝试下面的代码。
df.select([hash(col) for col in df.columns]).show()
此致
Neeraj
答案 1 :(得分:1)
您可以像下面这样在pyspark中进行操作(只需将输入列传递给函数):
{'left': P_collection_1, 'right': P_collection_2}
| ' Combine' >> beam.CoGroupByKey()
| ' ExtractValues' >> beam.Values()