Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
S3 Select mit Spark zur Verbesserung der Leistung bei Abfragen verwenden
Wichtig
Amazon S3 Select ist für Neukunden nicht mehr verfügbar. Bestandskunden von Amazon S3 Select können das Feature weiterhin wie gewohnt nutzen. Weitere Informationen
Mit Amazon-EMR-Version 5.17.0 und höher können Sie S3 Select
S3 Select unterstützt CSV und JSON-Dateien, das Datenformat wird unter Verwendung von s3selectCSV
und s3selectJSON
angegeben. Weitere Informationen und Beispiele finden Sie unter S3 Select in Ihrem Code angeben.
Ist S3 Select das Richtige für meine Anwendung?
Wir empfehlen, dass Sie Benchmark-Tests für Ihre Anwendungen im Vergleich mit und ohne S3 Select durchführen, um zu sehen, ob es für Ihre Anwendung geeignet sein könnte.
Verwenden Sie die folgenden Richtlinien, um zu bestimmen, ob Ihre Anwendung ein Kandidat für die Verwendung von S3 ist:
-
Ihre Abfrage filtert mehr als die Hälfte des ursprünglichen Datensatzes.
-
Ihre Netzwerkverbindung zwischen Amazon S3 und dem Amazon-EMR-Cluster hat eine gute Übertragungsgeschwindigkeit und verfügbare Bandbreite. Amazon S3 komprimiert keine HTTP-Antworten, sodass die Antwortgröße bei komprimierten Eingabedateien wahrscheinlich zunimmt.
Überlegungen und Einschränkungen
-
Die Amazon-S3-serverseitige Verschlüsselung mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C) und die clientseitige Verschlüsselung werden nicht unterstützt.
-
Die Eigenschaft
AllowQuotedRecordDelimiters
wird nicht unterstützt. Wenn diese Eigenschaft angegeben ist, schlägt die Abfrage fehl. -
Nur CSV- und JSON-Dateien im UTF-8-Format werden unterstützt. Mehrzeilige Zeilen werden nicht unterstützt. CSVs
-
Es werden nur unkomprimierte oder gzip-Dateien unterstützt.
-
Die Optionen für die Datenformate CSV und JSON in Spark (z. B.
nanValue
,positiveInf
,negativeInf
) sowie Optionen zum Umgang mit beschädigten Datensätzen (z. B. der failfast-Modus zur frühen Terminierung und der dropmalformed-Modus zum Überspringen von Datensätzen im falschen Format) werden nicht unterstützt. -
Die Verwendung von Kommas als Tausender-Trennzeichen wird bei Dezimalzahlen nicht unterstützt. Beispielweise ist
10,000
ungültig,10000
wird unterstützt. -
Kommentarzeichen auf der letzten Zeile werden nicht unterstützt.
-
Leere Zeilen am Ende einer Datei werden nicht verarbeitet.
-
Die folgenden Filter werden nicht an Amazon S3 ausgelagert:
-
Aggregatfunktionen wie
COUNT()
undSUM()
. -
Filter, die ein Attribut über einen
CAST()
-Aufruf konvertieren. Beispiel,CAST(stringColumn as INT) = 1
. -
Filter mit einem Attribut, das ein Objekt ist oder einem zusammengesetzten Attribut. Beispiel,
intArray[1] = 1, objectColumn.objectNumber = 1
. -
Filter, deren Wert ist nicht literal ist. Beispiel:
intColumn1 = intColumn2
-
Es werden nur die von S3 Select unterstützten Datentypen unterstützt, und es gelten die dokumentierten Einschränkungen.
-
S3 Select in Ihrem Code angeben
Die folgenden Beispiele zeigen, wie S3 Select für CSV mithilfe von Scala, SQL, R und PySpark angegeben wird. Auf die gleiche Weise können Sie mit S3 Select JSON als Datenformat festlegen. Eine Liste der Optionen, der Standardwerte und der Einschränkungen finden Sie unter Optionen.
spark .read .format("
s3selectCSV
") // "s3selectJson" for Json .schema(...) // optional, but recommended .options(...) // optional .load("s3://path/to/my/datafiles
")
Optionen
Die folgenden Optionen sind verfügbar, wenn s3selectCSV
und s3selectJSON
verwendet wird. Wenn nichts angegeben wird, werden die Standardwerte verwendet.
Optionen für S3selectCSV
Option | Standard | Verwendung |
---|---|---|
|
|
Gibt an, ob Komprimierung verwendet wird. |
|
"," |
Gibt den Feldbegrenzer an. |
|
|
Gibt das Zeichen an, das als Anführungszeichen verwendet wird. Die Angabe einer leeren Zeichenfolge wird nicht unterstützt und führt zu einem XML-Fehler aufgrund fehlerhaftem Format. |
|
|
Gibt das Zeichen an, das als Escape-Zeichen verwendet wird. |
|
|
|
Kommentar |
|
Gibt das Zeichen an, das als Kommentarzeichen verwendet wird. Der Kommentarindikator kann nicht deaktiviert werden. Dies bedeutet, dass der Wert |
|
"" |
Optionen für S3selectJSON
Option | Standard | Verwendung |
---|---|---|
|
|
Gibt an, ob Komprimierung verwendet wird. |
|
„false“ |
|