一个因为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
亲自验证,成功;
---一------步-----一 ------个-----脚--------印----------