python - 在 IntelliJ IDEA 中编写并运行 pyspark

标签 python intellij-idea apache-spark pyspark

我正在尝试在 IntelliJ 中使用 Pyspark,但我不知道如何正确安装它/设置项目。我可以在 IntelliJ 中使用 Python,我可以使用 pyspark shell,但我无法告诉 IntelliJ 如何找到 Spark 文件(导入 pyspark 导致“ImportError:No module named pyspark”)。

任何有关如何包含/导入 spark 以便 IntelliJ 可以使用它的技巧都将受到赞赏。

谢谢。

更新:

我试过这段代码:

from pyspark import SparkContext, SparkConf
spark_conf = SparkConf().setAppName("scavenge some logs")
spark_context = SparkContext(conf=spark_conf)
address = "C:\test.txt"
log = spark_context.textFile(address)

my_result = log.filter(lambda x: 'foo' in x).saveAsTextFile('C:\my_result')

错误信息如下:

Traceback (most recent call last):
File "C:/Users/U546816/IdeaProjects/sparktestC/.idea/sparktestfile", line 2, in <module>
spark_conf = SparkConf().setAppName("scavenge some logs")
File "C:\Users\U546816\Documents\Spark\lib\spark-assembly-1.3.1-hadoop2.4.0.jar\pyspark\conf.py", line 97, in __init__
File "C:\Users\U546816\Documents\Spark\lib\spark-assembly-1.3.1-hadoop2.4.0.jar\pyspark\context.py", line 221, in _ensure_initialized
File "C:\Users\U546816\Documents\Spark\lib\spark-assembly-1.3.1-hadoop2.4.0.jar\pyspark\java_gateway.py", line 35, in launch_gateway

File "C:\Python27\lib\os.py", line 425, in __getitem__
return self.data[key.upper()]
KeyError: 'SPARK_HOME'

Process finished with exit code 1

最佳答案

在程序运行/调试中为 (SPARK_HOMEPYTHONPATH) 设置 env 路径 配置。

例如:

SPARK_HOME=/Users/<username>/javalibs/spark-1.5.0-bin-hadoop2.4/python/
PYTHON_PATH=/Users/<username>/javalibs/spark-1.5.0-bin-hadoop2.4/python/pyspark

请参阅 IntelliJ Idea 中的附加快照

Run/Debug configuration for PySpark

关于python - 在 IntelliJ IDEA 中编写并运行 pyspark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33478218/

相关文章:

python - python 中接收用户输入并返回总和和平方的函数

python - 如何重新分区 pyspark 数据框?

java - Spark 使用编码器创建数据集,其中 row 是数组类型

scala - 如何阻止 Intellij 创建 src/main/java 和 src/main/scala-x 文件夹?

scala - Spark.mllib 中的并行性

python - 如何使用 numpy 将数组中的任意两个元素相加并生成矩阵?

python - Pandas 等效于 SQL 非 equi JOIN

python - 由点python连接的变量

java - 迭代字符串并使用 .equals 将结果与另一个字符串进行比较 (Java)

spring - IntelliJ + Tomcat + Spring-Loaded