RuntimeError: generator raised StopIteration


開始我使用的python3.7   spark2.1  利用sparkStreaming 時出現錯誤( RuntimeError: generator raised StopIteration):

如下:

python 代碼:

import os
JAVA_HOME = '/usr/local/java/jdk1.8.0_131'
PYSPARK_PYTHON = "/usr/local/python3/python"
SPARK_HOME = "/bigdata/spark-2.1.2-bin-hadoop2.3"
os.environ["JAVA_HOME"] = JAVA_HOME
os.environ["PYSPARK_PYTHON"] = PYSPARK_PYTHON
# os.environ["PYSPARK_DRIVER_PYTHON"] = PYSPARK_PYTHON
os.environ["PYSPARK_DRIVER_PYTHON"] = PYSPARK_PYTHON
# os.environ["SPARK_HOME"] = SPARK_HOME

from pyspark import SparkContext
from pyspark.streaming import StreamingContext

if __name__ == '__main__':
    sc = SparkContext("local[2]", appName="NetworkWordCount")
    # 參數2:指定執行計算的時間間隔
    ssc = StreamingContext(sc, 1)
    # 監聽ip,端口上的上的數據
    lines = ssc.socketTextStream('localhost', 9999)
    # 將數據按空格進行拆分為多個單詞
    words = lines.flatMap(lambda line: line.split(" "))
    # 將單詞轉換為(單詞,1)的形式
    pairs = words.map(lambda word: (word, 1))
    # 統計單詞個數
    wordCounts = pairs.reduceByKey(lambda x, y: x + y)
    # 打印結果信息,會使得前面的transformation操作執行
    wordCounts.pprint()
    # 啟動StreamingContext
    ssc.start()
    # 等待計算結束
    ssc.awaitTermination()

報錯:

 

 

發現了老外的網頁:https://stackoverflow.com/questions/56591963/runtimeerror-generator-raised-stopiteration-how-to-fix-this-python-issue

說是python3.7 和spark2.1 不兼容

 

 好家伙,去官網下載了spark3.3 就解決了(https://spark.apache.org/downloads.html)

順便記錄一哈,我用的是python,如何安裝使用spark

1: 官網下載上傳解壓

2:配置環境變量  ~/bashrc

3:  將/spark/python/pyspark  復制到    python 的安裝包中

4: 運行 /spark/bin 下的  pyspark

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM