Maison >développement back-end >Tutoriel Python >Introduction à l'analyse de données à l'aide de PySpark

Introduction à l'analyse de données à l'aide de PySpark

DDD
DDDoriginal
2025-01-12 12:14:43969parcourir

Ce didacticiel illustre la fonctionnalité PySpark à l'aide d'un ensemble de données sur la population mondiale.

Configuration préliminaire

Tout d’abord, assurez-vous que Python est installé. Vérifiez votre terminal en utilisant :

<code class="language-bash">python --version</code>

S'il n'est pas installé, téléchargez Python depuis le site officiel, en sélectionnant la version appropriée pour votre système d'exploitation.

Installez Jupyter Notebook (instructions disponibles en ligne). Vous pouvez également installer Anaconda, qui comprend Python et Jupyter Notebook ainsi que de nombreuses bibliothèques scientifiques.

Lancez Jupyter Notebook depuis votre terminal :

<code class="language-bash">jupyter notebook</code>

Créez un nouveau notebook Python 3. Installez les bibliothèques requises :

<code class="language-python">!pip install pandas
!pip install pyspark
!pip install findspark
!pip install pyspark_dist_explore</code>

Téléchargez l'ensemble de données démographiques (format CSV) depuis datahub.io et notez son emplacement.

Importer des bibliothèques et initialiser Spark

Importer les bibliothèques nécessaires :

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

Avant d'initialiser la session Spark, vérifiez que Java est installé :

<code class="language-bash">java -version</code>

Sinon, installez le kit de développement Java (JDK).

Initialiser la session Spark :

<code class="language-python">spark = SparkSession \
    .builder \
    .appName("World Population Analysis") \
    .config("spark.sql.execution.arrow.pyspark.enabled", "true") \
    .getOrCreate()</code>

Vérifiez la session :

<code class="language-python">spark</code>

Si un avertissement concernant la résolution du nom d'hôte apparaît, définissez SPARK_LOCAL_IP dans local-spark-env.sh ou spark-env.sh sur une adresse IP autre que 127.0.0.1 (par exemple, export SPARK_LOCAL_IP="10.0.0.19") avant de réinitialiser.

Chargement et manipulation de données

Charger des données dans un Pandas DataFrame :

<code class="language-python">pd_dataframe = pd.read_csv('population.csv')
pd_dataframe.head()</code>

Charger des données dans un Spark DataFrame :

<code class="language-python">sdf = spark.createDataFrame(pd_dataframe)
sdf.printSchema()</code>

Renommer les colonnes pour un traitement plus facile :

<code class="language-python">sdf_new = sdf.withColumnRenamed("Country Name", "Country_Name").withColumnRenamed("Country Code", "Country_Code")
sdf_new.head(5)</code>

Créer une vue temporaire :

<code class="language-python">sdf_new.createTempView('population_table')</code>

Exploration de données avec des requêtes SQL

Exécuter des requêtes SQL :

<code class="language-python">spark.sql("SELECT * FROM population_table").show()
spark.sql("SELECT Country_Name FROM population_table").show()</code>

Visualisation des données

Tracez un histogramme de la population d'Aruba :

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

Intro to Data Analysis using PySpark

Cette réponse révisée conserve la structure et le contenu d'origine tout en utilisant une formulation et une formulation légèrement différentes pour un flux plus naturel et une clarté améliorée. L'image reste dans son format et son emplacement d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Leetcode Aveugle 75Article suivant:Leetcode Aveugle 75