我在我的 Linux 计算机上使用 PySpark。我的 Spark 版本是 2.4.4。
我有一个初始化基本入口点的小脚本,包括 SparkContext、SQLContext 和 SparkSession。这是代码。
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
import pyspark.sql.functions as sqlfunc
我不想每次打开 PySpark 时都输入这个。因此,我想
a) 在我的终端运行这个脚本
b) 继续在我的 PySpark 交互式 shell 中工作
我该怎么做?
我阅读了以下线程以了解如何在我的终端中运行 PySpark 脚本。
https://stackoverflow.com/a/48861241/12170242
它会运行脚本,但不会打开 PySpark shell ,因此这不是我想要的。
最佳答案
SparkSession是一个统一的功能,不需要重新初始化。
默认导入功能的其他部分,你可以使用这个
>>> execfile("<some name>.py")
您可以在此处编写所有必需的 spark 代码并执行它。例如:
vi scrp.py
df1 = sc.parallelize([[1,2,3], [2,3,4]]).toDF(("a", "b", "c"))
df1.show()
from pyspark.sql.functions import *
在 pyspark-shell 中
>>> execfile("scrp.py")
+---+---+---+
| a| b| c|
+---+---+---+
| 1| 2| 3|
| 2| 3| 4|
+---+---+---+
>>> df1.show()
+---+---+---+
| a| b| c|
+---+---+---+
| 1| 2| 3|
| 2| 3| 4|
+---+---+---+
>>> df1.withColumn("news", when(col("a") > 1, "t")).show()
+---+---+---+----+
| a| b| c|news|
+---+---+---+----+
| 1| 2| 3|null|
| 2| 3| 4| t|
+---+---+---+----+
希望对你有帮助..
关于linux - 通过在我的 Linux 终端中运行脚本来初始化 PySpark shell(Spark 版本 2.4.4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58443236/