apache-spark - 如何将参数动态传递给 Apache Spark 中的过滤函数?

标签 apache-spark pyspark apache-spark-sql

我有一个员工文件,其中包含如下数据:

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

但这给了我空列表。

最佳答案

这可以在 scala 中完成,你可以将其更改为 python

val emp_name = "Sam"

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

希望这对您有所帮助!

关于apache-spark - 如何将参数动态传递给 Apache Spark 中的过滤函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44878449/

相关文章:

hbase - Spark序列化错误

r - 将 sparkr 收集到数据框中

apache-spark - 将数据框保存到.txt或.csv文件

scala - 使用 Scala 将字符串转换为 Spark 的时间戳

apache-spark - SparkSql 如果值为 null 则取前一个

apache-spark - Glue 上的 Spark 无法连接到 AWS/ElasticSearch

python - Papermill PySpark 支持

dataframe - 将数据框的架构更改为其他架构

python - Pyspark 从结构化流中的映射数组中提取值

apache-spark - PySpark:如何转置数据帧中的多列