2016-11-07 9 views
4

私はapapche sparkを使用しています。私は日付ベースでスパークから複数のjsonファイルにアクセスしたいです。どうすれば複数のファイルを選ぶことができますか。つまり、1434.jsonで終わるファイルまで1034.jsonで終わるファイルを指定したいとします。私はこれを試している。S3からデータフレームを使用して複数のjsonファイルにアクセスする方法

DataFrame df = sql.read().json("s3://..../..../.....-.....[1034*-1434*]"); 

しかし、私は方法を指定してください、次のエラー

at java.util.regex.Pattern.error(Pattern.java:1924) 
    at java.util.regex.Pattern.range(Pattern.java:2594) 
    at java.util.regex.Pattern.clazz(Pattern.java:2507) 
    at java.util.regex.Pattern.sequence(Pattern.java:2030) 
    at java.util.regex.Pattern.expr(Pattern.java:1964) 
    at java.util.regex.Pattern.compile(Pattern.java:1665) 
    at java.util.regex.Pattern.<init>(Pattern.java:1337) 
    at java.util.regex.Pattern.compile(Pattern.java:1022) 
    at org.apache.hadoop.fs.GlobPattern.set(GlobPattern.java:156) 
    at org.apache.hadoop.fs.GlobPattern.<init>(GlobPattern.java:42) 
    at org.apache.hadoop.fs.GlobFilter.init(GlobFilter.java:67) 

を取得しています。

答えて

2

あなたはこのようなことを読むことができます。

sqlContext.read().json("s3n://bucket/filepath/*.json") 

また、wildcardsをファイルパスに使用できます。例えば

sqlContext.read().json("s3n://*/*/*-*[1034*-1434*]") 
+0

が、私は、この範囲を提供することができますどのような問題に指定されています。特定の範囲内のファイル –

+0

@Hitesh Goyal:特定の範囲ではどういう意味ですか? – Shankar

+0

@HiteshGoyal:スパークファイルパスはワイルドカードをサポートしています..あなたのファイルパス構造は何ですか? – Shankar

関連する問題