に行くにコピー:CSVデータエクスポート/ HDFSは、私は次のコード行使用してHDFSにそのデータを記載したエリアからcsvファイルのデータを読み取り、対処するためのスパークジョブを使用しています奇妙な形式
val conf = new SparkConf().setAppName("WCRemoteReadHDFSWrite").set("spark.hadoop.validateOutputSpecs", "true");
val sc = new SparkContext(conf)
val rdd = sc.textFile(source)
rdd.saveAsTextFile(destination)
csvファイルがあるのフォーマットは次のデータを有する:
CTID、C3UID、地域、製品、キーワード
1,1004634181441040000、イースト、モバイル、NA
2,1004634181441040000、西、タブレット、NA
一方のデータが、それは次の形式になりますHDFSに入るとき:
CTID、C3UID、地域、製品、キーワード
1,1.00463 E + 18、東、モバイル、NA
2,1.00463E + 18、西、タブレット、NA
私はこれの背後にある正当な理由を見つけることができません。 どんな種類の助けにも感謝します。
よろしく、 Bhupesh
私は自分のスキーマを修正すべきだと言ったときに@Rick Moritzを返信してくれてありがとう、Spark Dataframe API共有場所からデータを読み取り、そのデータをHDFSに書き込んでいますか? –
@ChauhanB:必ずしもそうではありませんが、それは助けになるかもしれません。良い出発点は、RDDにあるタイプをチェックすることです.Doubleの検出はsc.textFileやsaveステップですでに発生している可能性があります。実際にデータをコピーするだけの場合は、Spark内部ではなくHDFS-APIの使用を検討してください。フォローアップ処理でデータを再利用したい場合は、Sparkを使用する方が良いオプションです。この種のデータでは、DataFrame APIが適しているので、お勧めします。 –
私はSpark APIに行きたいと思っています。私は何らかのデータをやりたいと思っています。データをHDFSに保存する前に、行データの上でクレンジングしています。私はApache Nifiのような他のツールも探ってきましたが、Apache Nifiのために余分なクラスタを持つコストを避けたいと思います。私は、HDFSでデータをロードした後、私の主なアプリケーションが実行される既存のスパークとHDFSクラスタを活用したいと考えています。あなたはそれを良いアプローチと見なしていますか?データをHDFSに保存する前に、Sparkを使ってデータを保存することは良いアイデアだと思いますか? –