2017-03-13 6 views
0

私はScalaの初心者です。次の質問があります。 さらに1つのcsvファイルを読み込み、各ファイルを次の変数に割り当てる方法は?私も多くのファイルを読み取る方法を知っている多くのファイルを読み込み、各ファイルを次の変数に割り当てる方法は?

val file_1.sc.textFile("/Users/data/urls_20170225") 

::私は1つのファイルを読み込む方法を知っている

val file_2.sc.textFile("/Users/data/urls_*") 

しかし、第二の方法は、1変数file_2にすべてのデータを割り当てるには、私にはないものですをしたい! Spark Scalaでこれを行うエレガントな方法を探しています。

+0

なぜこれをやりたいですか?不確定な数のvalを作成するようです。これは、ストリーム処理または反復処理に適していません。これはあなたの全体的なソリューションの小さな部分のようですが、実際に何を達成しようとしていますか? (また、* vals *は変数ではありません....) – WillD

答えて

0

sparkに複数のファイルを複数のRDDに読み込むAPIがありません。あなたができることは、RDDの1つのリストにそれらを1つずつロードすることです。以下はサンプルコードです。

def main(arg: Array[String]): Unit = { 
    val dir = """F:\Works\SO\Scala\src\main\resource""" 
    val startsWith = """urls_""" // we will use this as the wildcard 

    val fileList:List[File] = getListOfFiles(new File(dir)) 
    val filesRDD: List[RDD[String]] = fileList.collect({ 
    case file: File if file.getName.startsWith(startsWith)=> spark.sparkContext.textFile(file.getPath) 
    }) 
} 

//Get all the individual file paths 
def getListOfFiles(dir: File):List[File] = dir.listFiles.filter(_.isFile).toList 
+0

このソリューションは本当にトランスペアレントです。私はあなたの解決策を理解していますが、エラーが発生しました:エラー:見つからない:タイプファイル – user7573483

+0

このパッケージを追加する必要があります。 io.File'。 – Tawkir

関連する問題