Ich bin mit der öffentlich verfügbaren csv-Datensatz von Movielens Arbeits ich einen partitionierten Datensatz für den ratings.csv erstellt habe:Wie CSV-Datensatz mit Kite-Dataset partitionierten Schema ordnungsgemäß importieren?
kite-dataset create ratings --schema rating.avsc --partition-by year-month.json --format parquet
Hier ist meine Jahr-month.json:
[ {
"name" : "year",
"source" : "timestamp",
"type" : "year"
}, {
"name" : "month",
"source" : "timestamp",
"type" : "month"
} ]
Hier ist mein cSV-Import-Befehl:
mkite-dataset csv-import ratings.csv ratings
Nachdem der Import abgeschlossen, ich diesen Befehl ausgeführt wird, ob Jahr und Monat Partitionen zu sehen wo in der Tat erstellt:
hadoop fs -ls /user/hive/warehouse/ratings/
Was habe ich bemerkt, dass nur Partition ein einziges Jahr erstellt wurde, und in der es eine eine einzige Monat Partition erstellt wurde:
[[email protected] ml-20m]$ hadoop fs -ls /user/hive/warehouse/ratings/
Found 3 items
drwxr-xr-x - cloudera supergroup 0 2016-06-12 18:49 /user/hive/warehouse/ratings/.metadata
drwxr-xr-x - cloudera supergroup 0 2016-06-12 18:59 /user/hive/warehouse/ratings/.signals
drwxrwxrwx - cloudera supergroup 0 2016-06-12 18:59 /user/hive/warehouse/ratings/year=1970
[[email protected] ml-20m]$ hadoop fs -ls /user/hive/warehouse/ratings/year=1970/
Found 1 items
drwxrwxrwx - cloudera supergroup 0 2016-06-12 18:59 /user/hive/warehouse/ratings/year=1970/month=01
Was ist der richtige Art, einen solchen partitionierten Import durchzuführen, was dazu führen würde, dass alle Jahre und alle Monats-Partitionen erstellt würden?