如何在没有火花的情况下将 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)
我想在没有 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)