Hive 如何为配置单元/PySpark表中的每列获取唯一值?

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

我在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,'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]| +---------+------+--------+