在 Parquet 中编写数据框

Writing a dataframe in Parquet

我正在尝试在 spark 中读取 json 并将其写回镶木地板。我 运行 在 windows 中编写我的代码。下面是我的代码。执行后,它会创建一个名为 output_spark.parquet 的文件夹。它还会抛出找不到文件的错误。如果我创建一个文件,然后 运行 代码表明该文件已经存在。这是我得到的错误。

py4j.protocol.Py4JJavaError: An error occurred while calling o34.parquet. : java.lang.RuntimeException: java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset

我需要文件编写器将镶木地板写入文件吗?感谢您可能拥有的任何代码片段。

    from pyspark.sql import SparkSession

spark = SparkSession \
    .builder \
    .appName("Python Spark SQL basic example") \
    .config("spark.some.config.option", "some-value") \
    .getOrCreate()

df = spark.read.json("Output.json")

df.show()

 
df.write.parquet("output_spark.parquet")

在 Windows 上,Hadoop 需要本机代码扩展,以便它可以与 OS 正确集成,例如文件访问语义和权限。如何解决这个问题?

  1. 从 Hadoop 重新分发中获取 WINUTILS.EXE 二进制文件。使用这个 link

  2. 设置环境变量 %HADOOP_HOME% 指向包含 WINUTILS.EXE 的 BIN 目录之上的目录:在搜索栏中搜索“EDIT USER VARIABLE” windows 然后设置