Hive 如何为配置单元/PySpark表中的每列获取唯一值?
我在HIVE/PySpark中有一个表,有a、B和C列。 我想为每个列获取唯一的值,如Hive 如何为配置单元/PySpark表中的每列获取唯一值?,hive,pyspark,pyspark-sql,Hive,Pyspark,Pyspark Sql,我在HIVE/PySpark中有一个表,有a、B和C列。 我想为每个列获取唯一的值,如 {A: [1, 2, 3], B:[a, b], C:[10, 20]} 任何格式(数据帧、表格等) 如何在HIVE或PySpark中高效地执行此操作 我目前采用的方法是对每一列单独执行此操作,因此需要花费大量时间。我们可以使用pyspark.sql.functions模块中的collect\u set() df=spark.createDataFrame([(1,'a',10),(2,'a',20),(3
{A: [1, 2, 3], B:[a, b], C:[10, 20]}
任何格式(数据帧、表格等)
如何在HIVE或PySpark中高效地执行此操作
我目前采用的方法是对每一列单独执行此操作,因此需要花费大量时间。我们可以使用
pyspark.sql.functions
模块中的collect\u set()
df=spark.createDataFrame([(1,'a',10),(2,'a',20),(3,'b',10)],['a','b','C'])
>>>df.show()
+---+---+---+
|A | B | C|
+---+---+---+
|1 | a | 10|
|2 | a | 20|
|3 | b | 10|
+---+---+---+
>>>从pyspark.sql导入函数为F
>>>df.select([F.collect_set(x).别名(x)表示df.columns中的x]).show()
+---------+------+--------+
|A | B | C|
+---------+------+--------+
|[1,2,3]|[b,a]|[20,10]|
+---------+------+--------+
我们可以从
pyspark.sql.functions
模块中使用collect\u set()
df=spark.createDataFrame([(1,'a',10),(2,'a',20),(3,'b',10)],['a','b','C'])
>>>df.show()
+---+---+---+
|A | B | C|
+---+---+---+
|1 | a | 10|
|2 | a | 20|
|3 | b | 10|
+---+---+---+
>>>从pyspark.sql导入函数为F
>>>df.select([F.collect_set(x).别名(x)表示df.columns中的x]).show()
+---------+------+--------+
|A | B | C|
+---------+------+--------+
|[1,2,3]|[b,a]|[20,10]|
+---------+------+--------+