にこの種のデータにアクセスする方法:いくつかのサンプルのデータは次の形式で格納されているスパーク
data/file1_features.mat
data/file1_labels.txt
data/file2_features.mat
data/file2_labels.txt
...
data/file100_features.mat
data/file100_labels.txt
各data/file*_features.mat
記憶機能と各行は試料です。各data/file*_labels.txt
はそれらのサンプルのラベルを格納し、各行は数字(1,2,3、...など)です。 100ファイル全体で、合計約80
millionのサンプルがあります。
Spark
では、このデータセットへのアクセス方法は?
私はspark-2.0.0-preview/examples/src/main/python/mllib/random_forest_classification_example.py
を確認しました。それは、次の行があります。
data = MLUtils.loadLibSVMFile(sc, 'data/mllib/sample_libsvm_data.txt')
(trainingData, testData) = data.randomSplit([0.7, 0.3])
私は./bin/pyspark
でこの例を実行する、それがdata
オブジェクトがPythonRDD
であることを示しています。
PythonRDD[32] at RDD at PythonRDD.scala:48
data/mllib/sample_libsvm_data.txt
は単なるファイルです。私の場合、多くのファイルがあります。この場合は、RDD
がSpark
にありますか?すべての100
ファイルを1つの大きなファイルにマージし、例として処理する必要がありますか? Sparkエンジンを使用してデータセット(平均標準正規化または最小最大正規化)をスケーリングしたいと考えています。
私は、拡張子が.matのファイルと拡張子が.txtの2種類のファイルがあります。すべてのファイルを単一のrddに読み込んで処理しますか?またはtxt/matファイルのみをロードしたいですか? – Shashi
@Shashi、はい、両方のタイプのデータをロードしたいと思います。 '* .mat'ファイルは機能であり、' * .txt'ファイルはラベルです。私が正しく理解すれば、データは破られていると思う。したがって、 '* .mat'ファイル(例えばh5pyを使用して)を制御してnumpy配列にロードし、SparkのRDDにそれらを供給するための簡単なインタフェースを書くべきかどうか疑問です。次に、pysparkでRDDを使用できます。 – mining