我已经在笔记本电脑上安装了 PySpark。当我运行以下程序时,一切正常:
spark = SparkSession.builder.appName('pyspark').getOrCreate()
book_local = spark.read.text("data.txt")
book_local.show()
但是,当我运行以下程序时,出现错误:
spark = SparkSession.builder.appName('pyspark').getOrCreate()
my_grocery_list = [
["Banana", 2, 1.74],
["Apple", 4, 2.04],
["Carrot", 1, 1.09],
["Cake", 1, 10.99],
]
df_grocery_list = spark.createDataFrame(my_grocery_list)
df_grocery_list.show() # This is where the error is thrown
错误信息是:
Py4JJavaError: java.io.IOException: Cannot run program "python3"
设置环境变量后,一切恢复正常。
import os
import sys
from pyspark.sql import SparkSession
os.environ['PYSPARK_PYTHON'] = sys.executable
os.environ['PYSPARK_DRIVER_PYTHON'] = sys.executable
我的问题是,为什么第一个程序运行没有问题,但第二个程序却抛出了 Py4J 错误?第一个程序根本没有使用 Py4J 包吗?
此外,当我尝试用以下代码替换环境变量配置时:
spark = SparkSession.builder.appName('pyspark').config("spark.pyspark.python", sys.executable).getOrCreate()
我仍然遇到错误。