Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 来自spark分区拼花文件的黑斑羚表_Apache Spark_Parquet_Impala_Partition - Fatal编程技术网

Apache spark 来自spark分区拼花文件的黑斑羚表

Apache spark 来自spark分区拼花文件的黑斑羚表,apache-spark,parquet,impala,partition,Apache Spark,Parquet,Impala,Partition,我已经使用Spark生成了一些分区拼花地板数据,我想知道如何将其映射到黑斑羚表。。。遗憾的是,我还没有找到任何解决办法 拼花地板的模式如下所示: { key: long, value: string, date: long } 我用键和日期对它进行了分区,这在我的hdfs上提供了这样的目录: /data/key=1/date=20170101/files.parquet /data/key=1/date=20170102/files.parquet /data/key=2/date=20170

我已经使用Spark生成了一些分区拼花地板数据,我想知道如何将其映射到黑斑羚表。。。遗憾的是,我还没有找到任何解决办法

拼花地板的模式如下所示:

{ key: long,
value: string,
date: long }
我用
日期
对它进行了分区,这在我的hdfs上提供了这样的目录:

/data/key=1/date=20170101/files.parquet
/data/key=1/date=20170102/files.parquet
/data/key=2/date=20170101/files.parquet
/data/key=2/date=20170102/files.parquet
...
您知道我如何告诉Impala从这个数据集创建一个具有相应分区的表(并且不必像我读到的那样在每个分区上循环)?可能吗


提前谢谢

假设拼花的模式是指数据集的模式,然后使用列进行分区,在实际的
文件中只有键列。拼花
文件。现在,您可以按如下步骤进行操作

解决方案是使用黑斑羚外部表

create external table mytable (key BIGINT) partitioned by (value String ,
date BIGINT) stored as parquet location '....../data/'
注意,在上面的语句中,必须给出数据文件夹的路径

alter table mytable recover partitions'

refresh mytable;
以上2个命令将根据表的模式自动检测分区,并了解子目录中存在的拼花文件

现在,您可以开始查询数据了


希望对您有所帮助,假设您使用的是拼花的模式,您指的是数据集的模式,然后使用列进行分区,您将在实际的
文件.parquet
文件中只有键列。现在,您可以按如下步骤进行操作

解决方案是使用黑斑羚外部表

create external table mytable (key BIGINT) partitioned by (value String ,
date BIGINT) stored as parquet location '....../data/'
注意,在上面的语句中,必须给出数据文件夹的路径

alter table mytable recover partitions'

refresh mytable;
以上2个命令将根据表的模式自动检测分区,并了解子目录中存在的拼花文件

现在,您可以开始查询数据了


希望它有帮助

您是否尝试更改透视图,即使用Impala创建一个外部表,然后使用Spark
hiveContext
插入该表,然后只需在Impala中运行刷新以确认新的数据文件?顺便问一句,您确定分区有意义吗?您的拼花地板文件有多大?而
date
列只会带来麻烦,因为它是SQL中的保留字。。。!您是否尝试更改透视图,即使用Impala创建一个外部表,然后使用Spark
hiveContext
插入该表,然后在Impala中运行刷新以确认新的数据文件?顺便问一下,您是否确定分区有意义-您的拼花文件有多大?而
date
列只会带来麻烦,因为它是SQL中的保留字。。。!