从 Spark 保存分区 parquet HIVE 表时出现问题

2023-12-30

火花1.6.0 蜂巢1.1.0-cdh5.8.0

我在将数据帧从 Spark 保存到镶木地板支持的分区 Hive 表中时遇到一些问题。

这是我的代码:

val df = sqlContext.createDataFrame(rowRDD, schema)
df.write
  .mode(SaveMode.Append)
  .format("parquet")
  .partitionBy("year")
  .saveAsTable(output)

实际上没有什么特别的,但是当它生成时我无法从表中读取任何数据。

关键点在于分区 - 没有它一切都可以正常工作。 以下是我解决问题的步骤:

  1. 首先,简单的 select hive 返回表未分区。 - 好吧,Spark 似乎忘记提及 DDL 中的分区方案。我修复了手动创建表格的问题

  2. 尝试 #2 - 仍然没有任何结果,实际上发生的是 hive 元存储不知道该表在 dwh 中有任何分区。通过以下方式修复它: hive> msck 修复表

  3. 尝试#3 - 不,现在蜂巢爆发异常,类似:java.io.IOException:ort.apache.hadoop.hive.serde2.SerDeException:java.lang.NullPointerException。好吧,spark 定义了错误的序列化器。修复了它的设置STORED AS PARQUET

  4. 没有。不记得它是什么,但我意识到 Spark 用单列替换了我的方案:col数组 COMMENT '来自反序列化器' 我用正确的替换了它 - 又出现了一些问题。

到这里我就完成了。对我来说,spark 似乎生成了完全错误的 ddl 试图在 hive 中创建不存在的表。但是当我删除分区语句时,一切都工作得很好。

那么我错在哪里,或者也许有一个快速解决该问题的方法?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Spark 保存分区 parquet HIVE 表时出现问题 的相关文章

  • 如何按行扩展数组值!!使用 Hive SQL

    我有一个有 4 列的表 其中一列 项目 类型是 ARRAY 其他是字符串 ID items name loc id1 item1 item2 item3 item4 item5 Mike CT id2 item3 item7 item4 i
  • Spark 中的 RDD 和 Dataframe 有什么区别? [复制]

    这个问题在这里已经有答案了 嗨 我对 apache Spark 比较陌生 我想了解 RDD 数据帧和数据集之间的区别 例如 我正在从 s3 存储桶中提取数据 df spark read parquet s3 output unattribu
  • Spark on Hive SQL 查询错误 NoSuchFieldError: HIVE_STATS_JDBC_TIMEOUT

    针对 Hive 2 1 0 提交 Spark 1 6 0 SQL 应用程序时出现错误 Exception in thread main java lang NoSuchFieldError HIVE STATS JDBC TIMEOUT a
  • 在 Spark 中将流式 XML 转换为 JSON

    我是 Spark 新手 正在开发一个简单的应用程序 将从 Kafka 接收的 XML 流转换为 JSON 格式 Using 火花2 4 5 斯卡拉 2 11 12 在我的用例中 kafka 流采用 xml 格式 以下是我尝试过的代码 val
  • 将类型安全配置conf文件传递给DataProcSparkOperator

    我正在使用 Google dataproc 提交 Spark 作业 并使用 google Cloud Composer 来安排它们 不幸的是 我面临着困难 我依靠 conf文件 类型安全配置文件 将参数传递给我的 Spark 作业 我正在将
  • 如何在cassandra中保存spark流数据

    构建 sbt以下是build sbt文件中包含的内容 val sparkVersion 1 6 3 scalaVersion 2 10 5 resolvers Spark Packages Repo at https dl bintray
  • createOrReplaceTempView 在 Spark 中如何工作?

    我是 Spark 和 Spark SQL 的新手 如何createOrReplaceTempView在 Spark 工作 如果我们注册一个RDD对象作为表 Spark 会将所有数据保留在内存中吗 createOrReplaceTempVie
  • Spark Streaming 中是否需要检查点

    我注意到 Spark 流示例也有检查点代码 我的问题是检查点有多重要 如果是为了容错 那么在此类流应用程序中发生故障的频率是多少 这一切都取决于您的用例 假设您正在运行一个流作业 它仅从 Kafka 读取数据并计算记录数 如果您的应用程序在
  • 是否可以使用 Java 读写 Parquet,而不依赖 Hadoop 和 HDFS?

    我一直在寻找这个问题的解决方案 在我看来 如果不引入对 HDFS 和 Hadoop 的依赖 就无法在 Java 程序中嵌入读写 Parquet 格式 它是否正确 我想在 Hadoop 集群之外的客户端计算机上进行读写 我开始对 Apache
  • 使用 PySpark 从 azure blob 存储读取 csv 文件

    我正在尝试使用 Microsoft Azure 上的 PySpark HDInsight 集群来做一个机器学习项目 要在我的集群上进行操作 请使用 Jupyter 笔记本 另外 我的数据 一个 csv 文件 存储在 Azure Blob 存
  • 在 Spark 中将多行汇总为单行和单列

    我有一个如下的火花 DF 我需要汇总具有与单行相同 ID 的多行 但值应该不同 id values 1 hello 1 hello Sam 1 hello Tom 2 hello 2 hello Tom 预期输出 id values 1 h
  • Scala 中的行聚合

    我正在寻找一种方法在 Scala 的数据框中获取一个新列来计算min max中的值col1 col2 col10对于每一行 我知道我可以使用 UDF 来做到这一点 但也许有一种更简单的方法 Thanks Porting 这个Python答案
  • 无法在 Windows 10 中启动 Spark Master

    我是 Spark 新手 我正在尝试手动启动 master 在 Windows 10 中使用 MINGW64 当我这样做时 Downloads spark 1 5 1 bin hadoop2 4 spark 1 5 1 bin hadoop2
  • 为什么我不需要在 Databricks 中创建 SparkSession?

    为什么我不需要在 Databricks 中创建 SparkSession 集群设置的时候会自动创建一个SparkSession吗 还是其他人帮我做的 这仅在笔记本中完成 以简化用户的工作并避免他们指定不同的参数 其中许多参数不会产生任何效果
  • 如何防止 SQL Server 在导入数据时去除前导零

    A data file被导入到SQL Server桌子 数据文件中的一列是文本数据类型 该列中的值只能是整数 SQL Server 数据库中目标表中的相应列的类型为varchar 100 但在数据导入后 SQL Server 会存储以下值
  • 读取不同文件夹深度的多个 csv 文件

    我想递归地将给定文件夹中的所有 csv 文件读入 Spark SQLDataFrame如果可能的话 使用单一路径 我的文件夹结构如下所示 我想包含具有一个路径的所有文件 resources first csv resources subfo
  • Spark 数据帧分组、排序和选择一组列的顶部行

    我正在使用 Spark 1 5 0 我有一个包含以下列的 Spark 数据框 user id description fName weight 我想做的是为每个用户选择前 10 行和后 10 行 基于列权重的值 数据类型为 Double 如
  • 将 .parquet 编码为 io.Bytes

    目标 将 Parquet 文件上传到 MinIO 这需要将文件转换为字节 我已经能够做到这一点了 csv json and txt bytes data to csv encode utf 8 bytes json dumps self d
  • pyspark。数据框中的 zip 数组

    我有以下 PySpark DataFrame id data 1 10 11 12 2 20 21 22 3 30 31 32 最后 我想要以下 DataFrame id data
  • 如何通过数据框中数组列的索引计算平均值

    我正在使用 Spark 2 2 我有一个关于合作的基本问题ArrayType 我没有找到可以使用的内置聚合函数 Given a DataFrame有一个柱子id和一列values of ArrayType 我们想按 id 分组 然后按索引计

随机推荐