使用 spark databricks dataframe 过滤列

filter a column using spark databricks dataframe

我有一个数据框,我有一个名为 url 的列,我想要的是 select 所有不包含单词 "www.ebay.com" 的 url ,我试过这个:

%python
display(flutten_df.printSchema())
display(flutten_df[flutten_df['url'].str.contains("www.ebay.com")])

它给我这个错误:

AnalysisException: Can't extract value from url#75009: need struct type but got string;

架构是:

root
|-- web: string (nullable = true)
|-- url: string (nullable = true)

请问如何解决这个问题?

您正在尝试在 spark DataFrame 上使用 pandas 语法。

在 Pyspark 中,flutten_df['url'].str 表示 从列 url 获取结构字段 str。因此,您收到错误消息说它无法从不是结构的列中提取值。

使用 filterrlike 代替:

display(flutten_df.filter(~flutten_df['url'].rlike("www.ebay.com")))