使用空或嵌套空模式将数据帧写入镶木地板文件失败

数据管理员

我对scala和spark都很陌生。我有一个很愚蠢的问题。我有一个从Elasticsearch创建的数据框。我正在尝试以实木复合地板格式编写该s3。下面是我的代码块和我看到的错误。一位好撒玛利亚人可以请我为这个沉默寡言吗?

      val dfSchema = dataFrame.schema.json
//      log.info(dfSchema)
      dataFrame
        .withColumn("lastFound", functions.date_add(dataFrame.col("last_found"), -457))
        .write
        .partitionBy("lastFound")
        .mode("append")
        .format("parquet")
        .option("schema", dfSchema)
        .save("/tmp/elasticsearch/")
org.apache.spark.sql.AnalysisException: 
Datasource does not support writing empty or nested empty schemas.
Please make sure the data schema has at least one or more column(s).
         ;
    at org.apache.spark.sql.execution.datasources.DataSource$.org$apache$spark$sql$execution$datasources$DataSource$$validateSchema(DataSource.scala:733)
    at org.apache.spark.sql.execution.datasources.DataSource.planForWriting(DataSource.scala:523)
    at org.apache.spark.sql.DataFrameWriter.saveToV1Source(DataFrameWriter.scala:290)
    at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:271)
    at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:229)
冷杉

以镶木地板格式编写数据时,无需放置架构。

使用附加模式时,假设您已经在精确路径中存储了数据,并且想要添加新数据。如果要覆盖,可以放置“覆盖”而不是“追加”,如果路径是新路径,则不需要放置任何内容。

当您写入s3时,路径通常应如下所示:“ s3:// bucket / the folder”

你可以尝试一下:

 dataFrame
    .withColumn("lastFound", functions.date_add(dataFrame.col("last_found"), -457))
    .write
    .partitionBy("lastFound")
    .mode("append")
    .parquet("/tmp/elasticsearch/")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将轻快的数据帧写入镶木地板:'TypeError'

将数据递增地写入镶木地板文件

使用反射将pojo写入镶木地板文件

如何在python中的S3中从pandas数据帧写入镶木地板文件

使用从镶木地板文件创建的dask数据帧时内存使用过多

如何使用动态索引和类型将镶木地板文件写入弹性搜索

如何使用Databricks将.rdata文件转换为Azure数据湖中的镶木地板?

为什么在写入镶木地板时流查询失败并显示“ InvalidSchemaException:组类型不能为空(...)空组:spark_schema”?

使用pandas.DataFrame将镶木地板文件写入CSV文件时如何防止表格格式?

从Spark写入镶木地板时如何处理空值

如何将记录从镶木地板写入另一个镶木地板?

将包含列表的python 2d列表写入镶木地板文件

使用镶木地板工具打开镶木地板文件时出错

Spark 2.2无法将df写入镶木地板

将 json 写入镶木地板对象以使用 Lambda Python 放入 S3

使用镶木地板格式时是否保存了DataFrame模式?

通过首先阅读镶木地板文件将新列追加到数据框

将镶木地板文件存储到PostgreSQL数据库中

从镶木地板文件将具有默认值的数据加载到 Redshift

使用 fastparquet 在子文件上划分镶木地板文件

使用 Apache Spark 和 Java 在镶木地板文件中增量加载数据

如何使用Spark将镶木地板数据转换为案例类?

如何使用Spark将镶木地板文件加载到Hive表中?

如何使用.NET Core将镶木地板文件转换为CSV?

我们能否将Spark的CBO(基于成本的优化器)与本机镶木地板或内存中的数据帧一起使用?

Spark在HDFS上写入镶木地板

使用C#序列化镶木地板数据

复制镶木地板文件,然后使用 Athena 查询它们

使用通配符通过火花读取镶木地板文件