Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Dukungan Spark Connect
Spark Connect adalah arsitektur client-server untuk Apache Spark yang memisahkan klien aplikasi dari proses driver cluster Spark, memungkinkan konektivitas jarak jauh ke Spark dari klien yang didukung. Spark Connect juga memungkinkan debugging interaktif selama pengembangan langsung dari /clients. favorit Anda. IDEs
Dari versi rilis Apache Spark versi 3.5 dan seterusnya, Athena mendukung Spark Connect sebagai titik akhir yang dapat diakses AWS menggunakan API. GetSessionEndpoint
Contoh API/CLI () GetSessionEndpoint
Anda dapat menggunakan GetSessionEndpoint API untuk mendapatkan titik akhir Spark Connect untuk sesi interaktif.
aws athena get-session-endpoint \ --region "REGION" \ --session-id "SESSION_ID"
API ini mengembalikan URL endpoint Spark Connect untuk sesi tersebut.
{ "EndpointUrl": "ENDPOINT_URL", "AuthToken": "AUTH_TOKEN", "AuthTokenExpirationTime": "AUTH_TOKEN_EXPIRY_TIME" }
Menghubungkan dari klien yang dikelola sendiri
Anda dapat terhubung ke Sesi Interaktif Athena Spark dari klien yang dikelola sendiri.
Prasyarat
Instal klien pyspark-connect untuk Spark 3.5.6 dan SDK untuk Python. AWS
pip install --user pyspark[connect]==3.5.6 pip install --user boto3
Berikut ini adalah contoh script Python untuk mengirim permintaan langsung ke endpoint sesi:
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()
Berikut ini adalah contoh skrip Python untuk mengakses Live Spark UI atau Spark History Server untuk sesi:
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']