Apache Sparkを使用せずにscvファイルをAvroに変換する方法はありますか?私はポストのほとんどが私の場合はできないスパークを使用して示唆している参照してください。私は別のファイルにスキーマを持っています。私はスキーマを使用してcsvをavroに変換するカスタムシリアライザとデシリアライザを考えていました。どんな種類のリファレンスも私のために働くだろう。 ありがとうcsv avaなしでapache spark scala
0
A
答えて
0
Avroはオープンフォーマットであり、それをサポートするmany languagesがあります。
たとえば、Pythonのように、csvもサポートしています。しかし、GoとJavaもそうです。
1
あなただけの文字列とプリミティブを持っている場合、あなたはかなり簡単に一緒にこのような粗製の実装を置くことができます:
def csvToAvro(file: Sting, schema: Schema) = {
val rec = new GenericData.Record(schema)
val types = schema
.getFields
.map { f => f.pos -> f.schema.getType }
Source.fromFile(file)
.getLines
.map(_.split("_").toSeq)
.foreach { data =>
(data zip types)
.foreach {
case (str, (idx, STRING)) => rec.put(idx, str)
case (str, (idx, INT)) => rec.put(idx, str.toInt)
case (str, (idx, LONG)) => rec.put(idx, str.toLong)
case (str, (idx, FLOAT)) => rec.put(idx, str.toFloat)
case (str, (idx, DOUBLE)) => rec.put(idx, str.toDouble)
case (str, (idx, BOOLEAN)) => rec.put(idx, str.toBoolean)
case (str, (idx, unknown)) => throw new IllegalArgumentException(s"Don't know how to convert $str to $unknown at $idx))
}
}
rec
}
注これはNULL可能フィールドを処理しない:それらのために型がUNION
になるだろう実際のデータ型を調べるには、スキーマを調べなければなりません。
また、 "csvの解析"は非常に粗いです(ちょうどコンマで区切ることは、文字列フィールドにデータ内に,
が含まれている場合に破損するか、フィールドがエスケープされる二重引用符で囲みます)。
そしてまた、あなたはおそらくなどのCSV行のフィールドの数は、スキーマ内のフィールドの数と一致していること、例えば、いくつかの健全性チェックを確認するを追加したいと思う
しかし、上記の考慮事項にもかかわらず、これはアプローチを説明し始めるのに十分であるはずです。
+0
返信いただきありがとうございます、私は区切り記号として区切り記号をグループ化し、サニティチェックは大きな問題ではありません。しかし、私はNull値を持っているので、私は処理する必要があります、あなたのアプローチを試してみましょう。 – Explorer
関連する問題
- 1. IntelliJ ScalaワークシートでApache Sparkを使用
- 2. Apache Spark Scalaでは、DataFrameのVectors.denseをCSVから埋め込む方法は?
- 3. Apache Spark Scala CosmosDBコネクタデータベースに戻る
- 4. Apache-SparkグラフフレームのSBT
- 5. CSVをRDDに変換し、Spark/Scalaで読み取る
- 6. (Scala)Apache Sparkの文字列を日付に変換する
- 7. Scalaコンパイラを使わないでApache Sparkを実行してダウンロードする
- 8. FortifyはPython、Scala、Apache Sparkをサポートしていますか?
- 9. java.lang.NoClassDefFoundError:org/apache/spark/deploy/SparkSubmit
- 10. Bluemix Apache Spark Metrics
- 11. Spark Scala 2.11.8 Spark HbaseConnectorエラー
- 12. spark/scalaでcsvファイルを効率的にロードする
- 13. Apache SparkとScalaにはjarが必要です
- 14. Scalaで書かれたコンパイルエラー保存モデル、Apache Spark
- 15. ScalaとApache Sparkで2つのDataFramesを結合するには?
- 16. Gradle:EclipseのApache SparkでScalaプロジェクトをセットアップする
- 17. ScalaのApache Sparkでデータフレームをデータセットに変換するには?
- 18. Apache Sparkスタンドアロンクラスタチューニングパラメータ
- 19. Scala - spark-corenlp - java.lang.ClassNotFoundException
- 20. Spark Scalaデータフレーム変換
- 21. デリミタcsv reader spark
- 22. Scala 2.11 Spark 2.0 hortonworks-spark/shc sbt assemby
- 23. Scala/Spark:原因:java.lang.ClassNotFoundException:org.apache.spark.Logging
- 24. java apache spark mllib
- 25. Apache Spark Maven POMエラー
- 26. Apache Sparkアプリケーションフレームワーク
- 27. Scalaの[行] Spark
- 28. Spark scala Dataframe isin
- 29. Spark Scala CSV列名を小文字に変換する
- 30. Spark/Scalaのフォーマットログ
csvでどのようにネストされた構造、リスト、マップを表現しますか? – Dima
私は単にそれを持っていない、私のファイルは、RDBMSテーブルのプレーン抽出です。 – Explorer