我有一份员工档案,其中包含以下数据:
Name: Age:
David 25
Jag 32
Paul 33
Sam 18
我在Apache Spark中加载到dataframe
,我正在按以下方式过滤值:
employee_rdd=sc.textFile("employee.txt")
employee_df=employee_rdd.toDF()
employee_data = employee_df.filter("Name = 'David'").collect()
+-----------------+-------+
| Name:| Age:|
+-----------------+-------+
|David |25 |
+-----------------+-------+
但是当我尝试做这样的事情时:
emp_Name='Sam'
并将此名称传递给过滤器,如下所示:
employee_data = employee_df.filter("Name = 'emp_Name'").collect
但这给了我空名单。
答案 0 :(得分:3)
这可以在scala中完成,您可以将其更改为python
val emp_name = "Sam"
val employee_data = employee_df.filter(col("Name") === emp_name)
希望这有帮助!
答案 1 :(得分:2)
尝试以下方法:
emp_Name='Sam'
employee_data = employee_df.filter(employee_df["Name"] == emp_Name).collect()
答案 2 :(得分:-2)
from pyspark.sql.functions import col
filter_condition= col("Name").isin(["Sam","John"])
employee_data = employee_df.filter(filter_condition).collect