一个因为windows系统缺失文件而导致的pyspark的BUG

背景: 在windows 系统中开发pyspark程序。

一个简单的WC程序:

from pyspark.sql import SparkSession

spark = SparkSession.builder.appName('SparkByEx').getOrCreate()
sc = spark.sparkContext
text_file = sc.textFile("nba.csv")
counts = text_file.flatMap(lambda line: line.split(" ")) \
             .map(lambda word: (word, 1)) \
             .reduceByKey(lambda a, b: a + b)
counts.saveAsTextFile("nba_wc.txt")

错误:

Py4JJavaError  051.saveAsTextFile
ExitCodeException exitCode=-1073741515: at org.apache.hadoop.util.Shell.runCommand(Shell.java:582) at org.apache.hadoop.util.Shell.run(Shell.java:479) at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:773) at org.apache.hadoop.util.Shell.execCommand(Shell.java:866) at org.apache.hadoop.util.Shell.execCommand(Shell.java:849)

分析:

1,因为%Hadoop%/bin内的winutils.exe需要MSVCP100.dll 。

 2,这个程序需要你的电脑内有MSVCP100.dll文件。 而该文件包含在Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package 里面。   

至于为什么会确实文件,可能是系统更新的原因。

 

下载安装地址:(64位系统)

https://www.microsoft.com/en-us/download/details.aspx?id=26999

 

亲自验证,成功;

 

posted @ 2022-06-14 19:19  gaussen126  阅读(69)  评论(0编辑  收藏  举报