“java.lang.NoSuchMethodError: net.jpountz.lz4.LZ4BlockInputStream.<init>(Ljava/io/InputStream;Z)Vat
解决方法:
也可通过设置"spark.io.compression.codec","snappy"或其他压缩算法规避。鉴于修改源码重新打包替换较为繁琐,建议设置其他压缩算法规避。
举例如下:
from pyspark import SparkContext, SparkConf
from pyspark.streaming import StreamingContext
conf = SparkConf()
conf.setMaster('local[2]') # 表示运行在本地模式下,并且启动2个工作线程。
conf.setAppName('TestDStream').set("spark.io.compression.codec", "snappy")
sc = SparkContext(conf=conf)
ssc = StreamingContext(sc,10)
lines = ssc.textFileStream('file:///c:/12')
words = lines.flatMap(lambda line: line.split(' '))
wordCounts = words.map(lambda x: (x, 1)).reduceByKey(lambda x, y: x + y)
wordCounts.pprint()
ssc.start() # 如果用 pyspark,到这里会循环监听,下面的语句无法输入
ssc.awaitTermination()