Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Assistance avec Spark Connect
Spark Connect est une architecture client-serveur pour Apache Spark qui dissocie le client d'application du processus pilote du cluster Spark, permettant ainsi la connectivité à distance à Spark depuis les clients pris en charge. Spark Connect permet également le débogage interactif pendant le développement, directement à partir de vos /clients préférés IDEs.
À partir de la version 3.5 d'Apache Spark, Athena prend en charge Spark Connect en AWS tant que point de terminaison accessible via l'GetSessionEndpointAPI.
Exemples d'API/CLI () GetSessionEndpoint
Vous pouvez utiliser l'GetSessionEndpointAPI pour obtenir le point de terminaison Spark Connect pour une session interactive.
aws athena get-session-endpoint \ --region "REGION" \ --session-id "SESSION_ID"
Cette API renvoie l'URL du point de terminaison Spark Connect pour cette session.
{ "EndpointUrl": "ENDPOINT_URL", "AuthToken": "AUTH_TOKEN", "AuthTokenExpirationTime": "AUTH_TOKEN_EXPIRY_TIME" }
Connexion à partir de clients autogérés
Vous pouvez vous connecter à une session interactive Athena Spark à partir de clients autogérés.
Conditions préalables
Installez le client pyspark-connect pour Spark 3.5.6 et le SDK AWS pour Python.
pip install --user pyspark[connect]==3.5.6 pip install --user boto3
Voici un exemple de script Python permettant d'envoyer des demandes directement au point de terminaison de session :
import boto3 import time from pyspark.sql import SparkSession client = boto3.client('athena', region_name='<REGION>') # start the session response = client.start_session( WorkGroup='<WORKGROUP_NAME>', EngineConfiguration={} ) # wait for the session endpoint to be ready time.sleep(5) response = client.get_session_endpoint(SessionId=session_id) # construct the authenticated remote url authtoken=response['AuthToken'] endpoint_url=response['EndpointUrl'] endpoint_url=endpoint_url.replace("https", "sc")+":443/;use_ssl=true;" url_with_headers = ( f"{endpoint_url}" f"x-aws-proxy-auth={authtoken}" ) # start the Spark session start_time = time.time() spark = SparkSession.builder\ .remote(url_with_headers)\ .getOrCreate() spark.version # # Enter your spark code here # # stop the Spark session spark.stop()
Voici un exemple de script Python permettant d'accéder à l'interface utilisateur live de Spark ou au serveur Spark History pour une session :
Region='<REGION>' WorkGroupName='<WORKGROUP_NAME>' SessionId='<SESSION_ID>' Partition='aws' Account='<ACCOUNT_NUMBER>' SessionARN=f"arn:{Partition}:athena:{Region}:{Account}:workgroup/{WorkGroupName}/session/{SessionId}" # invoke the API to get the live UI/persistence UI for a session response = client.get_resource_dashboard( ResourceARN=SessionARN ) response['Url']