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à.
Tutorial: configurazione di PyCharm Professional con un endpoint di sviluppo
Questo tutorial mostra come connettere l'IDE Python PyCharm Professional
Per connettersi a un endpoint di sviluppo in modo interattivo, è necessario che PyCharm Professional sia installato. Non puoi farlo usando l'edizione gratuita.
Nota
Il tutorial utilizza Amazon S3 come origine dati. Se invece desideri utilizzare un'origine dati JDBC, devi eseguire l'endpoint di sviluppo in un cloud privato virtuale (VPC). Per connetterti con SSH a un endpoint di sviluppo in un VPC, devi creare un tunnel SSH. Questo tutorial non include le istruzioni per la creazione di un tunnel SSH. Per informazioni sull'utilizzo di SSH per connetterti a un endpoint di sviluppo in un VPC, consulta Securely Connect to Linux Instances Running in a Private Amazon VPC
Argomenti
Connettere PyCharm Professional a un endpoint di sviluppo
-
Crea un nuovo progetto in Python puro all'interno di PyCharm denominato
legislators
. -
Crea un file denominato
get_person_schema.py
nel progetto con il seguente contenuto:from pyspark.context import SparkContext from awsglue.context import GlueContext def main(): # Create a Glue context glueContext = GlueContext(SparkContext.getOrCreate()) # Create a DynamicFrame using the 'persons_json' table persons_DyF = glueContext.create_dynamic_frame.from_catalog(database="legislators", table_name="persons_json") # Print out information about this data print("Count: ", persons_DyF.count()) persons_DyF.printSchema() if __name__ == "__main__": main()
-
Completa una delle seguenti operazioni:
-
Per AWS Glue versione 0.9, scarica il file della libreria Python AWS Glue,
PyGlue.zip
, dahttps://s3.amazonaws.com/aws-glue-jes-prod-us-east-1-assets/etl/python/PyGlue.zip
a un percorso appropriato nel computer locale. -
Per AWS Glue versione 1.0, scarica il file della libreria Python AWS Glue,
PyGlue.zip
, dahttps://s3.amazonaws.com/aws-glue-jes-prod-us-east-1-assets/etl-1.0/python/PyGlue.zip
a un percorso appropriato nel computer locale.
-
-
Aggiungi
PyGlue.zip
come content root per il tuo progetto in PyCharm:-
In PyCharm, scegli File (File), Settings (Impostazioni) per aprire la finestra di dialogo Settings (Impostazioni). Puoi anche premere
Ctrl+Alt+S
. -
Espandi il progetto
legislators
e scegli Project Structure (Struttura del progetto). Quindi nel riquadro di destra, scegli + Add Content Root (+ Aggiungi Content Root). -
Seleziona il percorso in cui hai salvato
PyGlue.zip
, selezionalo, quindi scegli Apply (Applica).
La schermata Settings (Impostazioni) deve avere un aspetto simile al seguente:
Lascia aperta la finestra di dialogo Settings (Impostazioni) dopo aver scelto Apply (Applica).
-
-
Configura le opzioni di distribuzione per caricare gli script locali sull'endpoint di sviluppo utilizzando SFTP (questa caratteristica è disponibile solo in PyCharm Professional):
-
Nella finestra di dialogo Settings (Impostazioni), espandi la sezione Build, Execution, Deployment (Creazione, esecuzione e distribuzione). Scegli la sottosezione Deployment (Distribuzione).
-
Scegli l'icona + in alto nel riquadro centrale per aggiungere un nuovo server. Imposta il Type (Tipo) su
SFTP
e assegna un nome. -
Imposta SFTP host (Host SFTP) sull'indirizzo pubblico dell'endpoint di sviluppo, come indicato nella pagina dei dettagli. Scegli il nome dell'endpoint di sviluppo nella console AWS Glue per visualizzare la pagina dei dettagli. Per un endpoint di sviluppo in esecuzione in un VPC, imposta l'host SFTP sull'indirizzo host e la porta locale del tunnel SSH sull'endpoint di sviluppo.
-
Imposta lo User name (Nome utente) su
glue
. -
Imposta l'Auth type (Tipo di autenticazione) per la Key pair (OpenSSH or Putty) (Coppia di chiavi, OpenSSH o Putty). Imposta il Private key file (File della chiave privata) cercando il percorso in cui si trova il file della chiave privata dell'endpoint di sviluppo. Da notare che PyCharm supporta i tipi di chiavi DSA, RSA e ECDSA OpenSSH e non accetta le chiavi in formato privato Putty. È possibile utilizzare una versione aggiornata di
ssh-keygen
per generare un tipo di coppia di chiavi accettata da PyCharm, utilizzando la sintassi che segue:ssh-keygen -t rsa -f
<key_file_name>
-C "<your_email_address>
" -
Scegli Test connection (Test connessione) e consenti il test della connessione. Se la connessione viene stabilita, scegli Apply (Applica).
La schermata Settings (Impostazioni) ora deve avere un aspetto simile al seguente:
Lascia nuovamente aperta la finestra di dialogo Settings (Impostazioni) dopo aver scelto Apply (Applica).
-
-
Imposta la directory locale su una directory remota per la distribuzione:
-
Nel riquadro a destra della pagina Deployment (Distribuzione), scegli la scheda centrale nella parte superiore, contrassegnata dall'etichetta Mappings (Mappe).
-
Nella colonna Deployment Path (Percorso di distribuzione), immetti un percorso sotto
/home/glue/scripts/
per la distribuzione del percorso del progetto. Ad esempio:/home/glue/scripts/legislators
. -
Seleziona Apply (Applica).
La schermata Settings (Impostazioni) ora deve avere un aspetto simile al seguente:
Scegli OK per chiudere la finestra di dialogo Settings (Impostazioni).
-
Distribuzione dello script nell'endpoint di sviluppo
-
Scegli Tools (Strumenti), Deployment (Distribuzione), quindi scegli il nome con cui hai configurato l'endpoint di sviluppo, come illustrato nell'immagine seguente:
Dopo che lo script è stato distribuito, la parte inferiore della schermata deve avere un aspetto simile al seguente:
-
Nella barra dei menu scegli Tools (Strumenti), Deployment (Distribuzione), Automatic Upload (always) (Caricamento automatico (sempre)). Accertati che venga visualizzato un segno di spunta accanto a Automatic Upload (always) (Caricamento automatico (sempre)).
Quando questa opzione è abilitata, PyCharm carica automaticamente i file modificati nell'endpoint di sviluppo.
Configurazione di un interprete remoto
Configura PyCharm per utilizzare l'interprete Python nell'endpoint di sviluppo.
-
Nel menu File, scegli Settings (Impostazioni).
-
Espandi i legislators (legislatori) del progetto e scegli Project Interpreter (Interprete di progetto).
-
Scegli l'icona a forma di ingranaggio accanto all'elenco Project Interpreter (Interprete di progetto) quindi scegli Add (Aggiungi).
-
Nella finestra di dialogo Add Python Interpreter (Aggiungi interprete Python) nel riquadro di sinistra, scegli SSH Interpreter (Interprete SSH).
-
Scegli Existing server configuration (Configurazione server esistente) e nell'elenco Deployment configuration (Configurazione distribuzione) scegli la configurazione.
La schermata ora deve avere un aspetto simile all'immagine seguente.
-
Scegli "Move this server to IDE settings (Sposta il server nelle impostazioni IDE", quindi seleziona Next (Successivo).
-
Nel campo Interpreter (Interprete) cambia il percorso in
/usr/bin/gluepython
se stai usando Python 2 o in/usr/bin/gluepython3
se stai usando Python 3. Quindi scegli Finish (Fine).
Esecuzione dello script sull'endpoint di sviluppo
Per eseguire lo script:
-
Nel riquadro di sinistra, fai clic con il pulsante destro del mouse sul nome del file e scegli Run '
<nomefile>
'.Dopo una serie di messaggi, l'output finale mostra il conteggio e lo schema.
Count: 1961 root |-- family_name: string |-- name: string |-- links: array | |-- element: struct | | |-- note: string | | |-- url: string |-- gender: string |-- image: string |-- identifiers: array | |-- element: struct | | |-- scheme: string | | |-- identifier: string |-- other_names: array | |-- element: struct | | |-- lang: string | | |-- note: string | | |-- name: string |-- sort_name: string |-- images: array | |-- element: struct | | |-- url: string |-- given_name: string |-- birth_date: string |-- id: string |-- contact_details: array | |-- element: struct | | |-- type: string | | |-- value: string |-- death_date: string Process finished with exit code 0
Ora hai effettuato la configurazione per eseguire il debug dello script in remoto sul tuo endpoint di sviluppo.