【问题标题】:How to convert a JSON file to parquet using Apache Spark?如何使用 Apache Spark 将 JSON 文件转换为镶木地板?
【发布时间】:2016-04-16 21:19:25
【问题描述】:

我是 Apache Spark 1.3.1 的新手。如何将 JSON 文件转换为 Parquet?

【问题讨论】:

  • 您也可以使用 Apache Drill(可能更容易设置),您可以在 1 行 SQL 中将 JSON 从本地文件系统转换为 HDFS Parquet:“CREATE TABLE dfs.drill./test5/ AS (SELECT * FROM dfs.gen./2016/10/*/*.jsone);",如果你有兴趣 => drill.apache.org/docs/parquet-format.

标签: json apache-spark apache-spark-sql parquet


【解决方案1】:

Spark 1.4 及更高版本

您可以使用 sparkSQL 先将 JSON 文件读入 DataFrame,然后将 DataFrame 写入 parquet 文件。

val df = sqlContext.read.json("path/to/json/file")
df.write.parquet("path/to/parquet/file")

df.save("path/to/parquet/file", "parquet")

查看herehere 以获取示例和更多详细信息。

Spark 1.3.1

val df = sqlContext.jsonFile("path/to/json/file")
df.saveAsParquetFile("path/to/parquet/file")

与 Windows 和 Spark 1.3.1 相关的问题

在 Windows 上将 DataFrame 保存为 parquet 文件会抛出 java.lang.NullPointerException,如 here 所述。

在这种情况下,请考虑升级到更新的 Spark 版本。

【讨论】:

  • @eddard.stark 我已更新我的答案以包括 Spark 1.3.1
  • 当我尝试 saveAsParquetFile 时出现 NullPointerException
  • 您是在 Spark Shell 上还是在某些 IDE 中尝试这个?
  • 我正在使用 spark-shell
  • 我正在使用 spark-1.3.1-bin-hadoop2.6
猜你喜欢
  • 2019-02-03
  • 1970-01-01
  • 2014-11-25
  • 1970-01-01
  • 1970-01-01
  • 2016-04-15
  • 2018-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多