apache-spark - 将Parquet文件加载到作为Parquet失败存储的Hive表中(值是null)

标签 apache-spark hadoop hive pyspark impala

我只是试图在配置单元中创建一个存储为 Parquet 文件的表,然后将保存数据的csv文件转换为 Parquet 文件,然后将其加载到hdfs目录中以插入值。以下是我的序列我正在做但无济于事:

首先,我在Hive中创建了一个表:

CREATE external table  if not EXISTS db1.managed_table55 (dummy string)
stored as parquet
location '/hadoop/db1/managed_table55';

然后我使用此 Spark 将 Parquet 文件加载到上述hdfs位置:
df=spark.read.csv("/user/use_this.csv", header='true')
df.write.save('/hadoop/db1/managed_table55/test.parquet', format="parquet")

它加载但这里是输出……所有空值:
enter image description here

这是我转换为 Parquet 文件的use_this.csv文件中的原始值:
enter image description here

这证明了指定位置创建了表的文件夹(managed_table55)和文件(test.parquet):
enter image description here

enter image description here

有什么想法或建议,为什么会持续发生?我知道可能有一个小的调整,但我似乎无法识别。

最佳答案

当您将 Parquet 文件写入/hadoop/db1/managed_table55/test.parquet时,请在此位置尝试在同一位置创建表并从配置单元表中读取数据。

Create Hive Table:

hive> CREATE external table  if not EXISTS db1.managed_table55 (dummy string)
stored as parquet
location '/hadoop/db1/managed_table55/test.parquet';

Pyspark:
df=spark.read.csv("/user/use_this.csv", header='true')
df.write.save('/hadoop/db1/managed_table55/test.parquet', format="parquet")

关于apache-spark - 将Parquet文件加载到作为Parquet失败存储的Hive表中(值是null),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58208313/

相关文章:

sql - 多维数据集、汇总和分组运算符之间有什么区别?

hadoop - 如何通过浏览器从HDFS读取文件

hadoop - 为什么Hadoop名称节点连接到奇怪的[aca8ca1d.ipt.aol.com]主机名?

hadoop - HDP 集群中心跳丢失

hadoop - 如何通过以下查询在 Hive 中使用 GROUP BY 函数?

hive - 如何获取Hive表的分区列名

python - 如何解码 Spark 中的 HTML 实体?

apache-spark - Cassandra:身份验证错误......在集群配置中找不到身份验证器

python - 在 pyspark 中同时运行而不是顺序运行 for 循环

hadoop - 如何处理 HIVE 表中缺失的字段?