For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/developers-python-sdk-connect-spark.md.

Connecter PySpark avec le SDK Python de la Data Platform

Voir en Markdown

N'hésitez pas à consulter le code d'exemple pour les cas d'usage courants. Lorsque vous créez une action Custom PySpark, deux choses sont effectuées par la Data Platform

Objectif

Info

Dans une action Custom PySpark, vous pouvez utiliser les méthodes compatibles Spark de l'objet Connector. Ces méthodes sont disponibles uniquement dans les actions Custom PySpark et varient selon le type de source auquel vous êtes connecté.

N'hésitez pas à consulter le code d'exemple pour les cas d'usage courants.

Le module connect avec PySpark

Lorsque vous créez une action Custom PySpark, deux choses sont effectuées par la Data Platform :

  • SparkContext est créé avant l'appel du script.
  • SparkContext.stop() est appelé après le script.

Vous pouvez donc simplement accéder aux fonctionnalités de Spark avec :

SparkContext.getOrCreate()

Pour accéder aux données stockées au sein de la Data Platform, vous devez d'abord instancier un objet Connector avec la fonction connect. Vous pouvez ensuite utiliser les méthodes compatibles Spark de l'objet Connector pour interagir avec les données connectées.

Par exemple, la méthode pour obtenir un objet Spark Dataframe est connnector.extract_dataframe(). Le code d'exemple ci-dessous se connecte directement à une source puis utilise cette méthode pour obtenir l'objet Spark :

from forepaas.dwh import connect

cn_source = connect("dwh/file_upload_source/chicago_calendar_full.csv")

# La fonction extract_dataframe du connecteur compatible Spark retourne un Spark DataFrame
spark_df = cn_source.extract_dataframe()
Info

Notez que tous les connecteurs de la Data Platform ne sont pas compatibles avec PySpark. Certains connecteurs compatibles sont : Snowflake, PostgreSQL, MySQL, Amazon S31, File-Upload et Data Platform Bucket mais cette liste évolue constamment.

Méthodes du Connector compatibles Spark

get_spark_options()

Retourne les options Spark pour se connecter à une base de données.

Non disponible avec les sources de type Protocol (Buckets, File Upload, Amazon S3, etc).

Sortie

TypeDescriptionExemple
DictSparkOptions pour se connecter à une base de données.Voir ci-dessous.
{
            "sfAccount": ...,
            "sfURL": ...,
            "sfUser": ...,
            "sfSchema": ...,
            "sfDatabase": ...,
            "sfTimezone": ...,
            "sfWarehouse": ...,
            "preactions": ...,
}

get_spark_context()

Retourne le SparkContext actuel.

Sortie

TypeDescriptionExemple
pyspark.SparkContextSparkContext actuel.-

get_spark_session()

Retourne la session spark actuelle, configurée avec différents paramètres lors de l'utilisation d'un bucket / file-upload de la Data Platform.

Disponible uniquement avec les sources de type Protocol (Buckets, File Upload, Amazon S3, etc).

Sortie

TypeDescriptionExemple
pyspark.sql.SparkSessionSession Spark actuelle.-

get_spark_url(path, filename, bucket=None)

Retourne l'url du fichier vers le chemin donné de l'objet dans le stockage objet. path doit être un chemin absolu dans le stockage objet, et si bucket n'est pas défini, celui de la configuration utilisateur est utilisé

Disponible uniquement avec les sources de type Protocol (Buckets, File Upload, Amazon S3, etc).

Paramètres d'entrée

NomTypeDescriptionExemple
pathstrChemin absolu vers le fichier au sein du bucket.-
filenamestrNom du fichier avec son extension.-
bucket (optionnel)strBucket dans le stockage objet.-

Sortie

TypeDescriptionExemple
strURL Spark du fichier.s3a://bucket_name/path/chicago_calendar.csv

insert_dataframe(table, dataframe)

Insère un Spark DataFrame dans la source connectée.

Disponible avec les bases de données et certaines sources de type Protocol (Buckets, Amazon S3, Azure Blob Storage). Pour plus de détails, consultez les cas d'usage 4 et 5.

Paramètres d'entrée

NomTypeDescriptionExemple
tablestrNom de la table dans la base de données.my_s3_table
dataframepyspark.sql.DataFrameDataFrame contenant les données à insérer.-

extract_dataframe(params={})

Extrait un SparkDataframe depuis un fichier. Les options d'extraction du fichier peuvent être définies via params ou dans table.parameters

Paramètres d'entrée

NomTypeDescriptionExemple
paramsDictDict contenant une structure de requête SQL à exécuter. Un dictionnaire vide par défaut, entraînant la récupération de toutes les lignes.Dict vide : {}

Exemple détaillé :

 params = {
                "scale": ["attribute_1", "attribute_2"],
                "joins": [{
                    "type": "INNER",
                    "table": "table_1",
                    "condition": "table_1.attribute = table_2.attribute"
                }],
                "schema": {
                    "attribute_dest": "attribute_source"
                }
            }

Sortie

TypeDescriptionExemple
pyspark.sql.DataFrameDataFrame avec les données des sources.-

Aller plus loin

Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe la Data Platform sur le canal Discord dédié.

Si vous avez besoin d'une assistance concernant vos services OVHcloud, créez une demande depuis notre centre d'aide.

Rejoignez notre communauté d'utilisateurs.

1 : S3 est une marque déposée appartenant à Amazon Technologies, Inc. Les services de OVHcloud ne sont pas sponsorisés, approuvés, ou affiliés de quelque manière que ce soit.

Cette page vous a-t-elle aidé ?