Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Supporto Spark Connect
Spark Connect è un'architettura client-server per Apache Spark che separa il client dell'applicazione dal processo driver del cluster Spark, permettendo la connettività remota a Spark dai client supportati. Spark Connect consente anche il debug interattivo durante lo sviluppo direttamente dai tuoi /clients. IDEs
A partire dalla versione 3.5 di Apache Spark, Athena supporta Spark Connect come AWS endpoint accessibile tramite l'API. GetSessionEndpoint
Esempi di API/CLI () GetSessionEndpoint
Puoi utilizzare l'GetSessionEndpointAPI per ottenere l'endpoint Spark Connect per una sessione interattiva.
aws athena get-session-endpoint \ --region "REGION" \ --session-id "SESSION_ID"
Questa API restituisce l'URL dell'endpoint Spark Connect per quella sessione.
{ "EndpointUrl": "ENDPOINT_URL", "AuthToken": "AUTH_TOKEN", "AuthTokenExpirationTime": "AUTH_TOKEN_EXPIRY_TIME" }
Connessione da client autogestiti
Puoi connetterti a una sessione interattiva di Athena Spark da client autogestiti.
Prerequisiti
Installa il client pyspark-connect per Spark 3.5.6 e l'SDK per Python. AWS
pip install --user pyspark[connect]==3.5.6 pip install --user boto3
Di seguito è riportato un esempio di script Python per inviare richieste direttamente all'endpoint della sessione:
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()
Di seguito è riportato un esempio di script Python per accedere all'interfaccia utente live di Spark o allo Spark History Server per una sessione:
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']