2017-01-08 14 views
1

Моя проблема здесь, когда я ввожу значение p, ничего не происходит, оно не преследует выполнение: есть ли способ исправить его, пожалуйста?Функция input() в pyspark

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() 

ответ

1

Вы должны различать в разных случаях:

  • Сценарий, представленный с $SPARK_HOME/bin/spark-submit script.py

    В этом случае выполнения приложения Scala, который в свою очередь запускает интерпретатор Python. Поскольку приложение Scala не ожидает какого-либо взаимодействия со стандартным входом, не говоря уже о передаче его интерпретатору Python, ваш скрипт Python просто будет ждать ожидания данных, которые не придут.

  • Сценарий, выполняемый непосредственно с использованием интерпретатора Python (python script.py).

    Вы должны иметь возможность использовать input напрямую, но за счет обработки всех деталей конфигурации, обычно обрабатываемых spark-submit/org.apache.spark.deploy.SparkSubmit, вручную в вашем коде.

В общем все необходимые аргументы для ваших сценариев могут быть переданы с помощью командную строку

$SPARK_HOME/bin/spark-submit script.py some_app_arg another_app_arg 

и доступ к которым осуществляется с использованием стандартных методов, как sys.argv или argparse и использование input не является ни необходимым, ни полезным.

 Смежные вопросы

  • Нет связанных вопросов^_^