Spark производит вычисления, но выдает нулевой результат - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь выполнить пример, чтобы найти друзей с python 3 и pyspark

from pyspark import SparkContext, SparkConf

file = "D:\\jsonFIle\\Live.txt"
out_file = "D:\\jsonFIle\\friends.txt"

conf = SparkConf().setAppName("Common Friends").setMaster("local").set("spark.driver.memory", "5g")

#sc = SparkContext(conf=conf)
sc = SparkContext.getOrCreate()

f = sc.textFile(file)

def check(line):
    if len(line.split()) > 1:
           return len((line.split())[1].split(',')) > 1
    return False

adlists = f.filter(check).map(lambda line: line.split()).persist()
adlists = adlists.map(lambda l: (l[0], l[1].split(','))).persist()

def form_pairs(tup):
    l = []
    for elem1 in tup[1]:
        for elem2 in tup[1]:
            if elem1 < elem2:
                l.append(((elem1, elem2), 1))
    return l

pairs = adlists.flatMap(form_pairs)

cf = pairs.reduceByKey(lambda x,y: x + y)
sim = sorted(cf.collect())

out = open(out_file, "w")
for tuple in sim:
    s = str(tuple[0][0]) + "," + str(tuple[0][1]) + "\t" + str(tuple[1]) + "\n"
    out.write(s)
out.close()

print("done")

Это пример, поэтому я знаю, что это должно сработать.Я установил pyspark, следуя инструкциям онлайн https://medium.com/@GalarnykMichael/install-spark-on-windows-pyspark-4498a5d8d66c

, и если я запускаю по приглашению anaconda "pyspark", запускаю сразу jupyter, а при импорте pyspark у меня не возникает никаких проблем.

в приглашении anaconda я вижу этот журнал

[IPKernelApp] WARNING | Unknown error in handling PYTHONSTARTUP file C:\opt\spark\spark-2.2.2-bin-hadoop2.7\python\pyspark\shell.py:
[I 21:47:47.447 NotebookApp] Adapting to protocol v5.1 for kernel 6d4c3d50-648f-4d2d-858b-5df642386e14
[Stage 0:=========================>                               (15 + 8) / 33][I 21:49:28.441 NotebookApp] Saving file at /Downloads/ProvaSpark.ipynb
[I 21:51:28.434 NotebookApp] Saving file at /Downloads/ProvaSpark.ipynb
[Stage 2:===>                                                      (2 + 8) / 33][I 22:03:28.929 NotebookApp] Saving file at /Downloads/ProvaSpark.ipynb
[I 22:05:28.916 NotebookApp] Saving file at /Downloads/ProvaSpark.ipynb
[I 22:09:28.917 NotebookApp] Saving file at /Downloads/ProvaSpark.ipynb

Я вижу во время выполнения, что этапы 0 и 2 увеличиваются во время вычислений и при завершении финиша.Мой выходной файл пуст, и я не понимаю, почему.

Мой друг пытается на своем компьютере, и работает, но иногда имеет ошибку и должен перезапустить ядро ​​Jupyter и выполнить больше времени, прежде чем иметь правильные вычисления.

Есть предложения?

1 Ответ

0 голосов
/ 28 ноября 2018

Я решил.

Это была просто проблема с набором данных, которая включала заголовок в текстовый файл, и программа не могла его проанализировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...