gpt4 book ai didi

python - 是否可以使用 pyspark 过滤 Spark DataFrames 以返回列值在列表中的所有行?

转载 作者:太空宇宙 更新时间:2023-11-03 13:11:26 36 4
gpt4 key购买 nike

如何只返回 Spark DataFrame 中列值在指定列表中的行?

这是我的 Python pandas 执行此操作的方法:

df_start = df[df['name'].isin(['App Opened', 'App Launched'])].copy()

我看到了this SO scala 实现并尝试了几种排列,但无法使其正常工作。

这是使用 pyspark 进行的一次失败尝试:

df_start = df_spark.filter(col("name") isin ['App Opened', 'App Launched'])

输出:

Traceback (most recent call last):
File "/tmp/zeppelin_pyspark-6660042787423349557.py", line 253, in <module>
code = compile('\n'.join(final_code), '<stdin>', 'exec', ast.PyCF_ONLY_AST, 1)
File "<stdin>", line 18
df_start = df_spark.filter(col("name") isin ['App Opened', 'App Launched'])
^
SyntaxError: invalid syntax

另一个尝试:

df_start = df_spark.filter(col("name").isin(['App Opened', 'App Launched']))

输出:

Traceback (most recent call last):
File "/tmp/zeppelin_pyspark-6660042787423349557.py", line 267, in <module>
raise Exception(traceback.format_exc())
Exception: Traceback (most recent call last):
File "/tmp/zeppelin_pyspark-6660042787423349557.py", line 260, in <module>
exec(code)
File "<stdin>", line 18, in <module>
NameError: name 'col' is not defined

最佳答案

正如 dmdmdmdmdmd 在评论中指出的那样,第二种方法不起作用,因为需要导入 col:

from pyspark.sql.functions import col
df_start = df_spark.filter(col("name").isin(['App Opened', 'App Launched']))

这是实现过滤器的另一种方法:

df_start = df_spark.filter(df_spark.name.isin(['App Opened', 'App Launched']))

关于python - 是否可以使用 pyspark 过滤 Spark DataFrames 以返回列值在列表中的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42774867/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com