类库与框架、在window(pycharm)搭建pyspark库,连接Linux。

类库:一堆别人写好的代码,可以直接导入使用,pandas

框架:可以独立运行,软件产品,如spark

pandas用于:小规模数据集

spark用于:大规模数据集

pyspark

python的运行类库,内置了完全的spark api ,可以通过pyspark类库类库来编写spark应用程序。并将其提交到spark集群中运行。

搭建。。很麻烦,本地需要  pycharm专业版,利用shh连接Linux中的ana库。

测试

#conding:utf8
from pyspark import SparkConf, SparkContext

if __name__ == "__main__":
  conf=SparkConf().setMaster("local[*]").setAppName("wordcounthelloworld")
  sc=SparkContext(conf=conf)

  file_rdd=sc.textFile("data/input/words.txt")
  words_rdd=file_rdd.flatMap(lambda line: line.split(" "))

  wrods_with_one_rdd=words_rdd.map(lambda x: (x, 1))
  result_rdd=wrods_with_one_rdd.reduceByKey(lambda a, b: a + b)
  print(result_rdd.collect())

为什么在本地使用要配置环境变量

在 Windows 上使用 PySpark 时,如果不配置 PYSPARK_PYTHONPYSPARK_DRIVER_PYTHON 环境变量,可能会导致 PySpark 无法正确找到 Python 解释器,从而无法正常运行。这是因为 PySpark 需要明确知道使用哪个 Python 解释器来运行代码,特别是在 Windows 系统上,环境变量的配置尤为重要。以下是一些详细的原因和解释:

1. PySpark 的工作原理

PySpark 是 Apache Spark 的 Python API,它允许用户使用 Python 编写 Spark 应用程序。PySpark 本身是一个 Python 包,但它依赖于 Spark 的 Java/Scala 核心。因此,PySpark 需要与 Spark 的核心组件进行交互,这涉及到跨语言的通信。

2. 为什么需要配置环境变量

在 Windows 上,系统默认的环境变量配置可能无法满足 PySpark 的需求。具体来说:

  • PYSPARK_PYTHON:这个环境变量用于指定 PySpark 在集群模式下使用的 Python 解释器路径。如果不配置这个变量,PySpark 可能无法找到正确的 Python 解释器,导致在集群模式下运行时出现错误。

  • PYSPARK_DRIVER_PYTHON:这个环境变量用于指定 PySpark 在驱动程序模式下使用的 Python 解释器路径。驱动程序是 PySpark 应用程序的主进程,负责与 Spark 集群进行通信。如果不配置这个变量,驱动程序可能无法找到正确的 Python 解释器,导致应用程序无法启动。

3. 其他库为什么可以不用配置

其他 Python 库(如 NumPy、Pandas 等)通常不需要配置环境变量,因为它们是纯 Python 库,不依赖于外部的 Java/Scala 组件。这些库可以直接在 Python 解释器中运行,而不需要与外部系统进行复杂的交互。因此,只要 Python 解释器本身配置正确,这些库就可以正常工作。

4. PySpark 的特殊需求

PySpark 的特殊之处在于它需要与 Spark 的 Java/Scala 核心进行交互,这涉及到跨语言的通信和依赖管理。因此,PySpark 需要明确知道使用哪个 Python 解释器来运行代码,以确保与 Spark 集群的兼容性和稳定性。在 Windows 上,环境变量的配置尤为重要,因为 Windows 的路径和环境变量管理与 Unix-like 系统(如 Linux 和 macOS)有所不同。

5. 总结

  • PySpark 需要配置环境变量:因为 PySpark 需要与 Spark 的 Java/Scala 核心进行交互,必须明确指定 Python 解释器的路径,以确保跨语言通信的正确性。

  • 其他库不需要配置:因为这些库是纯 Python 库,不依赖于外部的 Java/Scala 组件,只需要 Python 解释器本身配置正确即可。

通过配置 PYSPARK_PYTHONPYSPARK_DRIVER_PYTHON 环境变量,可以确保 PySpark 在 Windows 上正确找到 Python 解释器,从而正常运行。

你可能感兴趣的:(+spark,spark,大数据,分布式)