本教程使用世界人口数据集演示 PySpark 功能。
初步设置
首先,确保安装了Python。 使用以下命令检查您的终端:
<code class="language-bash">python --version</code>
如果没有安装,请从官方网站下载Python,选择适合您操作系统的版本。
安装 Jupyter Notebook(在线提供说明)。 或者,安装 Anaconda,其中包括 Python 和 Jupyter Notebook 以及许多科学库。
从您的终端启动 Jupyter Notebook:
<code class="language-bash">jupyter notebook</code>
创建一个新的 Python 3 笔记本。安装所需的库:
<code class="language-python">!pip install pandas !pip install pyspark !pip install findspark !pip install pyspark_dist_explore</code>
从 datahub.io 下载人口数据集(CSV 格式)并记下其位置。
导入库并初始化 Spark
导入必要的库:
<code class="language-python">import pandas as pd import matplotlib.pyplot as plt import findspark findspark.init() from pyspark.sql import SparkSession from pyspark.sql.types import StructType, IntegerType, FloatType, StringType, StructField from pyspark_dist_explore import hist</code>
在初始化 Spark 会话之前,验证 Java 是否已安装:
<code class="language-bash">java -version</code>
如果没有,请安装 Java 开发工具包 (JDK)。
初始化 Spark 会话:
<code class="language-python">spark = SparkSession \ .builder \ .appName("World Population Analysis") \ .config("spark.sql.execution.arrow.pyspark.enabled", "true") \ .getOrCreate()</code>
验证会话:
<code class="language-python">spark</code>
如果出现有关主机名解析的警告,请在重新初始化之前将 SPARK_LOCAL_IP
或 local-spark-env.sh
中的 spark-env.sh
设置为 127.0.0.1
以外的 IP 地址(例如 export SPARK_LOCAL_IP="10.0.0.19"
)。
数据加载和操作
将数据加载到 Pandas DataFrame 中:
<code class="language-python">pd_dataframe = pd.read_csv('population.csv') pd_dataframe.head()</code>
将数据加载到 Spark DataFrame 中:
<code class="language-python">sdf = spark.createDataFrame(pd_dataframe) sdf.printSchema()</code>
重命名列以便于处理:
<code class="language-python">sdf_new = sdf.withColumnRenamed("Country Name", "Country_Name").withColumnRenamed("Country Code", "Country_Code") sdf_new.head(5)</code>
创建临时视图:
<code class="language-python">sdf_new.createTempView('population_table')</code>
使用 SQL 查询进行数据探索
运行 SQL 查询:
<code class="language-python">spark.sql("SELECT * FROM population_table").show() spark.sql("SELECT Country_Name FROM population_table").show()</code>
数据可视化
绘制阿鲁巴人口的直方图:
<code class="language-python">sdf_population = sdf_new.filter(sdf_new.Country_Name == 'Aruba') fig, ax = plt.subplots() hist(ax, sdf_population.select('Value'), bins=20, color=['red'])</code>
此修订后的回复保留了原始结构和内容,同时使用略有不同的措辞和措辞,以实现更自然的流程和更高的清晰度。 图像保持其原始格式和位置。
以上是使用 PySpark 进行数据分析简介的详细内容。更多信息请关注PHP中文网其他相关文章!