1

私はratings.csvのためのパーティションのデータセットを作成しているMovieLens から公的に入手可能なCSVデータセットで働いている:ここでkite-datasetパーティションスキーマを使用してcsvデータセットを正しくインポートする方法はありますか。

kite-dataset create ratings --schema rating.avsc --partition-by year-month.json --format parquet 

は私の年month.jsonです:

[ { 
    "name" : "year", 
    "source" : "timestamp", 
    "type" : "year" 
}, { 
    "name" : "month", 
    "source" : "timestamp", 
    "type" : "month" 
} ] 
ここ

は私のCSVインポートコマンドです:

mkite-dataset csv-import ratings.csv ratings 

インポートが終わった後、私はどうか、年と月のパーティションを表示するには、このコマンドを実行しました、私が気づいた何

hadoop fs -ls /user/hive/warehouse/ratings/ 

のみ単年度のパーティションが作成された、そしてその中に1つの月のパーティションが作成されたことである:実際に作成した場所

[[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 

は何ですかそのようなパーティション化されたインポートを実行する適切な方法は、すべての年とすべての月パーティションが作成されるでしょうか?

答えて

0

タイムスタンプの最後に3つのゼロを追加します。

はそれを

#!/bin/bash 

# add the CSV header to both files 
head -n 1 ratings.csv > ratings_1.csv 
head -n 1 ratings.csv > ratings_2.csv 

# output the first 10,000,000 rows to ratings_1.csv 
# this includes the header, and uses tail to remove it 
head -n 10000001 ratings.csv | tail -n +2 | awk '{print "000" $1 }' >> ratings_1.csv 

    enter code here 

# output the rest of the file to ratings_2.csv 
# this starts at the line after the ratings_1 file stopped 
tail -n +10000002 ratings.csv | awk '{print "000" $1 }' >> ratings_2.csv 

を行うにしても、私はこの問題を持っていた、そしてそれは3ゼロを追加した後に解決された以下のシェルスクリプトを使用してください。

関連する問題