2017-01-27 20 views
6

Tôi có một số lớn pyspark.sql.dataframe.DataFrame và tôi muốn giữ (như vậy filter) tất cả các hàng nơi URL được lưu trong cột location chứa chuỗi được xác định trước, ví dụ: 'google.com'.Lọc df khi các giá trị khớp với một phần của chuỗi trong pyspark

Tôi đã thử df.filter(sf.col('location').contains('google.com') nhưng điều này ném một

TypeError: _TypeError: 'Column' object is not callable' 

Làm thế nào để đi xung quanh và lọc df của tôi đúng? Rất cám ơn trước!

+1

Hãy thử 'df.filter ("vị trí như '% google.com%'") ' – mrsrinivas

Trả lời

12

Bạn có thể sử dụng đồng bằng SQL trong filter

df.filter("location like '%google.com%'") 

hoặc với các phương pháp cột DataFrame

df.filter(df.location.like('%google.com%')) 
+1

Tuyệt vời, điều này thực sự hoạt động, cảm ơn! Bạn có thể giải thích tại sao phương pháp tôi thử trước đây không hoạt động? – gaatjeniksaan

+1

Tôi không thấy bất kỳ phương thức 'contains()' [cho pySpark] (http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html). Nhưng chứa nên làm việc. – mrsrinivas

Các vấn đề liên quan