2017-03-29 2 views
1

Also, ich bin neu in AWS S3 und Pyspark und Linux. Ich bin mir nicht sicher, wo ich anfangen soll. Hier ist meine Frage:Dateien im Verzeichnis auf AWS S3 mit pyspark/python auflisten

In Linux kann ich den folgenden Befehl ausgeben und Dateien im Ordner sehen:

aws s3 ls 's3://datastore/L2/parquet' 

ähnliche Sache mit Python tun nicht funktioniert

import os 
os.listdir('s3://datastore/L2/parquet') 

Es gibt Fehler :

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
OSError: [Errno 2] No such file or directory: 's3://datastore/L2/parquet' 

jedoch pyspark und SQLContext.read.parquet verstehen s es gut:

from pyspark.sql import SQLContext 
sqlContext = SQLContext(sc) 
df = sqlContext.read.parquet('s3://datastore/L2/parquet') 

Gibt es Gründe, warum es in SQLContext arbeitet und funktioniert nicht in os.listdir? Wo kann ich anfangen, meine Verwirrung zu klären? Jede Antwort außer 'Get Bachelor in CS' wäre hilfreich.

Antwort

1

Also, AWS s3 ist nicht das gleiche wie das Dateisystem Ihres Betriebssystems. Der Befehl AWS und die Befehle pyspark SQLContext.read machen etwas anderes als der Befehl os.listdir, der nicht weiß, wie man Dinge von s3 liest.

Von the s3 docs:

In Bezug auf die Umsetzung, Eimer und Objekte sind Ressourcen und Amazon S3 stellt APIs für Sie, sie zu verwalten.

Wenn Sie nicht wissen, wie das Linux-Dateisystem funktioniert, empfehle ich, darüber zu lesen, vielleicht etwas wie this wird hilfreich sein.

Verwandte Themen