2017-07-03 25 views
0

我有具有如下数据的员工文件:如何动态传递参数以在Apache Spark中过滤函数?

Name: Age: 
David 25 
Jag  32 
Paul 33 
Sam  18 

我在Apache的火花装入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 

但这是给我的空列表

请帮我我如何将值传递给像上面那样的过滤函数。

+2

尝试'employee_data = employee_df.filter( “名称= $ {} EMP_NAME”)collect' –

+0

喜拉梅什Maharjan它不工作我也才尝试 – Rahul

+0

这应该有double等于'employee_data = employee_df.filter(“Name == $ {emp_Name}”)。collect' –

回答

1

这可以在Scala中做你可以改变它到Python

val emp_name = "Sam" 

val employee_data = employee_df.filter(col("Name") === emp_name) 

希望这有助于!

-1

尝试以下操作:

emp_Name='Sam' 
employee_data = employee_df.filter(employee_df["Name"] == emp_Name).collect() 
相关问题