跳转到主要内容

未提供项目描述

项目描述

eren

这个库包含了针对PySpark用户的Hive辅助方法。

即使您不打算直接使用这个库,这个README也是了解PySpark的Hive元存储的好方法。

eren

Hive元存储背景

Hive元存储包含有关表的信息,数据的位置和数据模式。

在Hive元存储中注册表是创建组织良好的Spark工作流的好方法。您可以将Spark集群设置为自动注册组织中的所有表,这样用户就可以启动集群并立即使用SQL语法查询数据。

假设您有一个名为important_customers的表,并且有一个数据库分析师希望每周查询此表为会计部门生成报告。如果important_customers表已在Hive元存储中注册,则分析师可以启动Spark集群并运行查询,无需担心底层数据的存储位置或模式。

这个库如何帮助

这个库包含辅助方法,可以更容易地管理您的Hive元存储。例如,您可以使用这个库轻松确定Hive表是管理的、未管理的还是未注册的。

您还可以使用这个库注册当前不在元存储中的Hive表。

这个库使PySpark程序员常用的Hive任务变得简单。

Hive管理表、未管理表和未注册表的比较

Hive管理表已在Hive元存储中注册,其路径由Hive管理。以下是一个创建管理表的示例。


此表在XX中存储数据。

Hive Parquet与Delta Lake表

使用Python处理Hadoop文件系统

Eren还提供了一个顶层接口,用于处理HadoopFileSystem的任何实现(包括S3、HDFS/DBFS和本地文件系统)。

from eren import fs

# spark: SparkSession

hdfs = fs.HadoopFileSystem(spark, "hdfs:///data") # returns an instance for access to HDFS
s3fs = fs.HadoopFileSystem(spark, "s3a:///bucket/prefix") # returns an instance for access to S3
local_fs = fs.HadoopFileSystem(spark, "file:///home/my-home") # return an instance for access to LocalFS

全局文件

您可以在远程文件系统上列出文件和目录

list_of_files = hdfs.glob("hdfs:///raw/table/**/*.csv") # list all CSV files recursively inside a folder on HDFS

读取/写入UTF-8字符串

您可以从/向远程文件系统读取和写入UTF-8字符串。但请注意!与常规spark.read相比,此方法速度极慢。不要用于读取/写入数据!

import json

hdfs.write_utf8("hdfs:///data/results/results.json", json.dumps({"key1": 1, "key2": 3}), mode="w")
json.loads(hdfs.read_utf8("hdfs:///data/results/results.json"))

社区

博客

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

eren-0.0.1.tar.gz (4.0 kB 查看哈希值)

上传时间

构建分布

eren-0.0.1-py3-none-any.whl (4.4 kB 查看哈希值)

上传时间 Python 3

支持