如何在没有火花的情况下将 JSON 字符串写入 scala 中的 parquet,avro 文件

How to write JSON string to parquet, avro file in scala without spark

我想在没有 spark 框架的情况下将简单的 JSON 字符串写入 parquet 和 avro 文件格式。

我的 JSON 字符串看起来:

    {"emp_id":"123","emp_name":"Mike","emp_status":"true"}

我没有找到任何解决方案,是否可以在没有 spark 框架的情况下从简单的 JSON 字符串在 scala 中编写 parquet 和 avro 文件??

这是一个例子

build.sbt

ThisBuild / version := "0.1.0-SNAPSHOT"

ThisBuild / scalaVersion := "2.13.8"

lazy val root = (project in file("."))
  .settings(
    name := "parquet",
    libraryDependencies ++= Seq(
      "com.github.mjakubowski84" %% "parquet4s-core" % "2.1.0",
      "org.apache.hadoop" % "hadoop-client" % "3.3.1"
    ),
  )

Test.scala

import com.github.mjakubowski84.parquet4s.{ ParquetReader, ParquetWriter, Path }

object Test {
  def main(args: Array[String]): Unit = {
    case class Emp(emp_id: String, emp_name: String, emp_status: String)

    val emps = Seq(
      Emp("123", "Mike", "true")
    )

    val path = Path("emp1.parquet")


    ParquetWriter.of[Emp].writeAndClose(path, emps)

    val parquetIterable = ParquetReader.as[Emp].read(path)
    try {
      parquetIterable.foreach(println)
    } finally parquetIterable.close()
  }
}

和输出

Emp(123,Mike,true)