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 rilascio 5.17.0 e successivi, puoi utilizzare S3 Select
S3 Select è supportata con file CSV e JSON che utilizzano i valori s3selectCSV
e s3selectJSON
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 connessione di rete tra Amazon S3 e il cluster Amazon EMR ha una buona velocità di trasferimento e larghezza di banda disponibile. Amazon S3 non comprime le risposte HTTP, pertanto è probabile che le dimensioni della risposta aumentino per file di input compressi.
Considerazioni e limitazioni
-
La crittografia lato server con chiavi di crittografia fornite dal cliente (SSE-C) e la crittografia lato client di Amazon S3 non sono supportate.
-
La proprietà
AllowQuotedRecordDelimiters
non è supportata. Se questa proprietà è specificata, la query ha esito negativo. -
Sono supportati solo i file CSV e JSON in formato UTF-8. Le CSVs linee multiple non sono supportate.
-
Sono supportati solo i file non compressi o gzip.
-
Le opzioni Spark CSV e JSON quali
nanValue
,positiveInf
,negativeInf
e le opzioni relative a 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
Gli esempi seguenti mostrano come specificare S3 Select per CSV utilizzando Scala, SQL, R e. PySpark È possibile utilizzare S3 Select per JSON nello stesso modo. Per un elenco delle opzioni, dei relativi valori predefiniti e le limitazioni, consulta Opzioni.
spark .read .format("
s3selectCSV
") // "s3selectJson" for Json .schema(...) // optional, but recommended .options(...) // optional .load("s3://path/to/my/datafiles
")
Opzioni
Le seguenti opzioni sono disponibili quando si utilizzano s3selectCSV
e s3selectJSON
. Se non specificate, verranno utilizzati i valori predefiniti.
Opzioni con S3selectCSV
Opzione | Predefinita | Utilizzo |
---|---|---|
|
|
Indica se viene utilizzata la compressione. |
|
"," |
Specifica il delimitatore del campo. |
|
|
Specifica il carattere virgoletta. La specifica di una stringa vuota non è supportata e genera un errore di XML danneggiato. |
|
|
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 S3selectJSON
Opzione | Predefinita | Utilizzo |
---|---|---|
|
|
Indica se viene utilizzata la compressione. |
|
"false" |
|