云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

数据库服务器_我的世界永恒服务器_精选特惠

小七 141 0

数据库服务器_我的世界永恒服务器_精选特惠

Vora的一个经典用例是通过在Vora的关系(内存)或基于磁盘的存储中缓存数据子集来加速HDFS数据集,从而允许通过ODBC/JDBC进行外部SQL访问。以前版本的Vora只能通过HDFS适配器进行摄取。Vora 2.0(与Spark 2.1结合)现在提供Spark扩展允许将数据帧直接写入Vora表。本文讨论了改进,并指导您将数据从Spark 2.1.2数据帧写入Vora关系表。

Vora的HDFS适配器

在Vora 2.0之前,Vora使用数据的唯一方法是通过其HDFS适配器。不幸的是,该适配器无法读取HDFS分区数据集。此外,给定一个扁平的HDFS数据集,它既不能消耗列的子集,也不能消耗列行的子集–它只能消耗整个数据集,大数据好吗,或构成数据集的一个或多个完整的单独HDFS文件。

SAP Vora Spark Extensions–Vora 1.x

从Vora 1.x开始,就可以通过Spark数据源访问Vora和HANA表。但是,以前只能从,它们无法写入

SAP Vora Spark Extensions–Vora 2.x

最新的Vora Spark Extensions在Vora 2.0之上的Spark 2.x*中运行,现在允许我们从Spark写入Vora表,有效地将Spark数据帧推入Vora表。由于Spark能够通过Hive完全支持HDFS分区,这意味着HDFS的限制已经被超越了——我们现在可以通过Spark访问一个HDFS分区表,并将其直接写入Vora表中。更棒的是,我们可以投影一个子集的行,并在将它们写入Vora表之前从数据集中切出不需要的行。这是一个非常强大的功能!本白皮书的目的是说明:

以下步骤指导您将数据从Spark 2.1.2数据帧写入Vora关系表(启用Spark/Hive集成)。如果您已经有分区表,则可以跳到第三部分,家庭人工智能,否则按照说明下载一个小样本数据集,使用Spark创建分区的HDFS数据集,并记录Hive元存储中的表条目/表分区。

下载zip存档

我们将使用一个小数据集(仅20,000行–但足够创建一个日期分区数据集的记录)。zip存档包含三个CSV文件。我们将把它们解压到一个目录中,然后将整个目录上载到HDFS

数据集只是用于ML练习的timeseries数据。它包含房间的温度和湿度等指标,以便尝试确定房间是否有人占用。

将zip解压缩到专用文件夹

将整个文件夹上载到HDFS

如果我提供了相对路径,它将上载到我的HDFS用户的主目录(/user/)

确认Spark和Hadoop环境为您的系统正确设置

检查您的环境。$Spark\u home应指向Spark 2.1.x安装,$Spark\u home应包含相应的配置单元-网站.xml

确定你的火花-默认值.conf文件包含必要的vora配置。执行以下测试。这是结果吗?

…或者这是结果?

如果你的火花-默认值.conf文件包含Vora事务协调器的主机和端口的两个设置,您可以使用sap.spark.vora公司.PublicVoraClientUtils帮助程序包,用于从spark检索主机和端口-默认值.conf自动归档。如果你的火花-默认值.conf文件不包含Vora事务协调器的主机和端口的两个设置,或者您选择显式地创建一个指定它们的连接,您可以使用sap.client.vora服务器.PublicVoraClient包,其中明确指定Vora事务协调器的主机和端口。

在运行安装.shSAP Vora Spark extensions安装脚本,它会报告类似于以下内容:

"安装文件夹"(在我的例子中是:/opt/vora spark)将指向您节点上SAP vora spark扩展的位置

启动spark Shell,包括vora/spark扩展包

使用vora提供的脚本将自动包括sap Vora spark extensions安装文件夹下的spark-sap-datasources-spark2.jar(在我的例子中,/opt/vora spark/lib/)

确保您使用的是受支持的spark for vora版本之一,即spark 2.1.x

从三个占用csv文件创建一个spark数据帧

添加一个日期列(从时间戳开始)对表进行分区

写入分区的HDFS数据集并将其记录在配置单元元存储中

(可选)指定您的选择ORC、Parquet或CSV

saveAsTable方法将数据集写入Hive的HDFS区域

(HDP)/apps/Hive/warehouse/occupancyPrtnd\u ORC下(Cloudera)/user/hive/warehouse/occupancyPrtnd\u orc

现在我们已经将数据保存在hive中,可以安全地从Spark shell中退出一会儿。在HDFS下,您应该看到18个项目;17个HDFS分区目录和一个

成功文件

如果需要,重新启动Vora Spark shell:

返回Vora Spark shell,我们现在可以使用Spark的Hive上下文来查询表

,表的描述应该显示分区信息

建立Vora会话

我们将创建一个Vora‘Client’,以便发布表DDL和执行Vora表查询。创建一个有两种方法,取决于你的火花-默认值.conf文件包含必要的vora配置

如果您的spark-默认值.conf文件包含Vora事务协调器的主机和端口的两个设置,云计算和大数据的区别,您可以使用sap.spark.vora公司.PublicVoraClientUtils帮助程序包,用于检索主机和端口从你的火花-默认值.conf自动归档。如果你的火花-默认值.conf文件不包含Vora事务协调器的主机和端口的两个设置,或者您选择显式地创建一个指定它们的连接,您可以使用sap.client.vora服务器.PublicVoraClient包,其中显式指定Vora事务协调器的主机和端口。

计划

我们创建了源配置单元表。

它有九列(两个整数、一个时间戳和五个浮点列)它是按日期划分的它包含大约20000行

接下来我们将创建目标Vora表。它将具有匹配数量的列和类型,如Spark DataFrame

obsDate(属于date类型)、isOcc(属于String类型)和tempF(属于Double类型)。

最后,我们将从配置单元表创建一个中间Spark DataFrame。但是它只有三个字段,并且只包含大约3000行

obs_date(日期类型),occ_str(String类型)和t2(Double类型)。

我在这里试图说明几件事:

在关系(内存)引擎中创建Vora表