未提供项目描述
项目描述
eren
这个库包含了针对PySpark用户的Hive辅助方法。
即使您不打算直接使用这个库,这个README也是了解PySpark的Hive元存储的好方法。
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 查看哈希值)
关闭
eren-0.0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d527f13d3a64dea6390b8bbada61ab42cbb9d4bbf1f90ebd6b84435f9f6f037a |
|
MD5 | d1ef24e35efaacc24dcbe3c69e12c988 |
|
BLAKE2b-256 | a37d236d210543e4b9755b93fd296fe83d9c471932ac22b541790e8cdf413db6 |
关闭
eren-0.0.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 76bbde0d377e236c9bf9b55ef0ee3a8d5ee3752d9aa349c583cf6eed2bd16a84 |
|
MD5 | 3bb970349389d0209d35d2764e8a0c80 |
|
BLAKE2b-256 | c260fb622acd68551b2df1d1add65a71af747ac970b329eaeb43a1f2a4b08646 |