我只是试图在配置单元中创建一个存储为 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")
它加载但这里是输出……所有空值:
这是我转换为 Parquet 文件的use_this.csv文件中的原始值:
这证明了指定位置创建了表的文件夹(managed_table55)和文件(test.parquet):
有什么想法或建议,为什么会持续发生?我知道可能有一个小的调整,但我似乎无法识别。
最佳答案
当您将 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/