linux - 通过在我的 Linux 终端中运行脚本来初始化 PySpark shell(Spark 版本 2.4.4)

标签 linux shell apache-spark terminal pyspark

我在我的 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/

相关文章:

linux - shell 脚本由 crontab 运行但没有输出

linux - Bash:将带有新行的字符串转换为带有逗号、内联的唯一值的字符串

linux - Bash 脚本无效空格符号

bash - 寻找 shell 重定向交错行为的解释

apache-spark - Spark 按列重新分区,每列具有动态分区数

apache-spark - 从 s3 将外部 jars 加载到 Zeppelin

python - 通过 tee 将 stdout 重定向到文件时隐藏来自信号处理程序的日志

linux - 构建 Docker 容器时出错

使用 ugo+rw 打开 Python 并在文件上显示 "permission denied"?

scala - 如何注册UDF以在SQL和DataFrame中使用?