我只是想在配置单元中创建一个存储为Parquet文件的表,然后将保存数据的csv文件转换为Parquet文件,然后将其加载到hdfs目录以插入值。下面是我正在执行的序列,但没有效果:
首先,我在配置单元中创建了一个表:
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\u this.csv文件中的原始值:
这证明指定的位置创建了表的文件夹(managed\u table55)和文件(test.parquet):
你有什么想法或建议来解释为什么会这样吗?我知道可能有一个小的调整,但我似乎无法确定它。
1条答案
按热度按时间5cg8jx4n1#
当你在写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")