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à.
Usare S3 Select con Spark per migliorare le prestazioni delle query
Importante
Amazon S3 Select non è più disponibile per i nuovi clienti. I clienti esistenti di Amazon S3 Select possono continuare a utilizzare la funzionalità come di consueto. Ulteriori informazioni
Con Amazon EMR versione 5.17.0 e successive, puoi usare S3 Select con Spark
S3 Select è supportato con CSV e utilizza JSON i s3selectJSON
valori s3selectCSV
e per specificare il formato dei dati. Per maggiori informazioni ed esempi, consulta Specificare S3 Select nel codice.
S3 Select è adatto alla mia applicazione?
È consigliabile eseguire analisi comparative delle applicazioni con e senza S3 Select per vedere se l'utilizzo di tale caratteristica può risultare idoneo per l'applicazione.
Per determinare se l'applicazione è idonea per l'uso di S3 Select, utilizza le seguenti linee guida:
-
La query filtra più di metà del set di dati originale.
-
La tua connessione di rete tra Amazon S3 e il EMR cluster Amazon ha una buona velocità di trasferimento e larghezza di banda disponibile. Amazon S3 non comprime HTTP le risposte, quindi è probabile che la dimensione della risposta aumenti per i file di input compressi.
Considerazioni e limitazioni
-
La crittografia lato server di Amazon S3 con chiavi di crittografia fornite dal cliente (SSE-C) e la crittografia lato client non sono supportate.
-
La proprietà
AllowQuotedRecordDelimiters
non è supportata. Se questa proprietà è specificata, la query ha esito negativo. -
Sono supportati solo i file CSV in formato -8. JSON UTF CSVsLe linee multiple non sono supportate.
-
Sono supportati solo i file non compressi o gzip.
-
Spark CSV e JSON opzioni come
nanValue
,positiveInf
negativeInf
, e le opzioni relative ai record danneggiati (ad esempio, le modalità failfast e dropmalformed) non sono supportate. -
L'utilizzo di virgole (,) all'interno di decimali non è supportato. Ad esempio,
10,000
non è supportato, mentre è supportato10000
. -
I caratteri di commento nell'ultima riga non sono supportati.
-
Le righe vuote alla fine di un file non vengono elaborate.
-
I filtri seguenti non sono trasferiti ad Amazon S3:
-
Funzioni di aggregazione quali
COUNT()
eSUM()
. -
Filtri che eseguono il
CAST()
di un attributo. Ad esempioCAST(stringColumn as INT) = 1
. -
Filtri con un attributo che è un oggetto o è complesso. Ad esempio
intArray[1] = 1, objectColumn.objectNumber = 1
. -
I filtri per i quali il valore non è un valore letterale. Ad esempio,
intColumn1 = intColumn2
. -
Sono supportati solo tipi di dati supportati da S3 Select con le limitazioni documentate.
-
Specificare S3 Select nel codice
I seguenti esempi mostrano come specificare S3 Select per CSV l'utilizzo di ScalaSQL, R e PySpark. Puoi usare S3 Select for JSON allo stesso modo. Per un elenco delle opzioni, dei relativi valori predefiniti e le limitazioni, consulta Opzioni.
Opzioni
Le seguenti opzioni sono disponibili quando si utilizzano s3selectCSV
e s3selectJSON
. Se non specificate, verranno utilizzati i valori predefiniti.
Opzioni con S3Select CSV
Opzione | Predefinita | Utilizzo |
---|---|---|
|
|
Indica se viene utilizzata la compressione. |
|
"," |
Specifica il delimitatore del campo. |
|
|
Specifica il carattere virgoletta. La specificazione di una stringa vuota non è supportata e genera un errore di formato errato. XML |
|
|
Specifica il carattere di escape. |
|
|
|
comment |
|
Specifica il carattere per commenti. Non è possibile disabilitare l'indicatore dei commenti. In altre parole, il valore |
|
"" |
Opzioni con S3select JSON
Opzione | Predefinita | Utilizzo |
---|---|---|
|
|
Indica se viene utilizzata la compressione. |
|
"false" |
|