【问题标题】:Initialize PySpark shell by running a script in my Linux terminal (Spark Version 2.4.4)通过在我的 Linux 终端中运行脚本来初始化 PySpark shell(Spark 版本 2.4.4)
【发布时间】:2019-10-18 02:44:54
【问题描述】:

我在我的 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,所以这不是我想要的。

【问题讨论】:

    标签: linux shell apache-spark terminal pyspark


    【解决方案1】:

    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|
    +---+---+---+----+
    

    希望对您有所帮助..

    【讨论】:

      【解决方案2】:

      当您打开 pyspark shell 时,sparkSessionsparkContext 已分别作为 sparksc 可用。

      sparkSession 可在 Apache Spark v2.0 上使用,而早期版本的 scsparkContext

      编辑:

      您可以编写导入所有内容并创建 sparkContext、sqlContext 等的代码,并以交互模式启动 python shell。

      python -i yourfile.py
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-11
        • 2012-11-18
        • 2017-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多