python - pyspark 中的函数 input()

标签 python apache-spark pyspark rdd

我这里的问题是当我输入p的值时,没有任何反应,它不追求执行:请问有什么办法可以解决吗?

import sys
from pyspark import SparkContext
sc = SparkContext("local", "simple App") 

p =input("Enter the word")
rdd1 = sc.textFile("monfichier") 
rdd2= rdd1.map(lambda l : l.split("\t")) 
rdd3=rdd2.map(lambda l: l[1])  
print rdd3.take(6)
rdd5=rdd3.filter(lambda l : p in l)

sc.stop()

最佳答案

您可以使用 py4j 通过 Java 获取输入

from py4j.java_gateway import JavaGateway

scanner = sc._gateway.jvm.java.util.Scanner  
sys_in = getattr(sc._gateway.jvm.java.lang.System, 'in')  
result = scanner(sys_in).nextLine()  
print(result)

根据您的环境/spark 版本,您可能需要将 sc 替换为 spark.sparkContext

关于python - pyspark 中的函数 input(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41532465/

相关文章:

python - 如何在python脚本中提升到root权限?

python - Pandas html : Don't truncate long values

python - TensorFlow session 到底做了什么?

scala - Spark ML 将自定义 OneHotEncoder 插入/安装到管道中

r - 有没有办法在 spark 或 pyspark 中模仿 R 的高阶(二进制)函数速记语法?

apache-spark - 使用 Apache Spark 隐藏 REST API 提交 python 脚本

python - MySQLdb/Python INSERT 查询不将数据插入表中

scala - Spark DataFrame - 使用 SQL 读取管道分隔文件?

maven - Apache Spark 依赖问题

python - Spark 合并与收集,哪个更快?