将pyspark.sql.column.Column转换为numpy数组

mo49yndu  于 2023-11-16  发布在  Spark
关注(0)|答案(2)|浏览(119)

我是pyspark的新手,还没有对avl.方法有一个完整的概述。我想获得pyspark框架的 * 单个列的唯一值 *。这种方法不起作用:

F.array_distinct(my_spark_df.my_column).???

字符串
无论我尝试将???-函数应用于列,toPandas()collect()display()等,我都得到:

TypeError: 'Column' object is not callable


我还发现了this thread,它与此类似,但在我的情况下没有帮助,因为我想在收集它们之前只选择不同的值。

wfypjpf4

wfypjpf41#

在发布我的问题后,我有了另一个想法,它起作用了:)
似乎我走错了路。列函数可能是这里错误的方法,相反,我们需要保留嵌套框架,在那里进行操作,然后我们有toPandas()方法可用:

my_spark_df.select("my_column").distinct().toPandas()

字符串

3ks5zfa0

3ks5zfa02#

如果你只想为my_column取不同的值,你可以尝试:

my_spark_df.select('my_column').distinct().collect()

字符串
这将给出给予Row对象
您可以通过以下方式获取值列表:

distinct_vals = my_spark_df.select('my_column').distinct().collect()
distinct_vals = [a[my_column] for a in distinct_vals]

相关问题