Apache spark 将snappy.parquet文件作为表格移动到impala或beeline中

Apache spark 将snappy.parquet文件作为表格移动到impala或beeline中,apache-spark,hdfs,impala,beeline,Apache Spark,Hdfs,Impala,Beeline,我有一个snappy.parquet文件,我想通过impala或beeline将其整体移动到一个表中,通过 CREATE EXTERNAL TABLE IF NOT EXISTS first_test LIKE PARQUET '/user/my_user/my_table/part-00000-c0544fc8-b709-4408-8e90-f0f9e4050691-c000.snappy.parquet' 由于某种原因不起作用,因为它说在0.31秒内获取了0行。 当我通过spark.rea

我有一个snappy.parquet文件,我想通过impala或beeline将其整体移动到一个表中,通过

CREATE EXTERNAL TABLE IF NOT EXISTS first_test LIKE PARQUET '/user/my_user/my_table/part-00000-c0544fc8-b709-4408-8e90-f0f9e4050691-c000.snappy.parquet'
由于某种原因不起作用,因为它说
在0.31秒内获取了0行。
当我通过spark.read.parquet在spark中读取此文件时,它返回我要查找的表(超过1000行)

我无法直接写入配置单元,因为我没有myDF.write.saveAsTable的权限


有没有一种方法可以通过impala或beeline生成表,即使impala和beeline在hdfs中只有读取和执行权限,而没有写入权限。或者我必须给impala和beeline在hdfs中写入的权限吗?

您所做的基本上是基于文件中包含的拼花地板元数据创建表。如果还想读取数据,可以按如下所示指定表位置

CREATE EXTERNAL TABLE IF NOT EXISTS 
first_test 
LIKE PARQUET '/user/my_user/my_table/part-00000-c0544fc8-b709-4408-8e90-f0f9e4050691-c000.snappy.parquet'
location 
'/user/my_user/my_table/'

它将自动读取指定文件夹位置内的所有文件

我已经尝试过了,但是正如我提到的,我没有hdfs的写入权限,因此beeline无法将其移动到配置单元仓库中。它不需要移动它。。它会将表格指向您的位置。我确实需要提供访问hdfs的权限,仅供参考。