TransformationMixin 类

此类提供用于输出数据集的转换功能。

继承
builtins.object
TransformationMixin

构造函数

TransformationMixin()

方法

read_delimited_files

通过将所有输出作为带分隔符的文件读取,将输出数据集转换为表格数据集。

read_parquet_files

通过将所有输出作为 Parquet 的文件读取,将输出数据集转换为表格数据集。

表格数据集通过分析中间输出 (指向) 的 parquet 文件创建。

read_delimited_files

通过将所有输出作为带分隔符的文件读取,将输出数据集转换为表格数据集。

read_delimited_files(include_path=False, separator=',', header=<PromoteHeadersBehavior.ALL_FILES_HAVE_SAME_HEADERS: 3>, partition_format=None, path_glob=None, set_column_types=None)

参数

include_path
bool
必需

将路径信息保留为数据集中的列的布尔值。 默认为 False。 在读取多个文件,并且想要知道特定记录源自哪个文件,或者想要在文件路径中保留有用的信息时,这非常有用。

separator
str
必需

用于拆分列的分隔符。

header
PromoteHeadersBehavior
必需

控制在读取文件时如何提升列标题。 默认假定所有文件都具有相同的标题。

partition_format
str
必需

指定路径的分区格式。 默认值为“None”。 将会基于指定的格式将每个路径的分区信息提取到列中。 格式部分“{column_name}”创建字符串列,“{column_name:yyyy/MM/dd/HH/mm/ss}”创建日期/时间列,其中“yyyy”、“MM”、“dd”、“HH”、“mm”和“ss”分别用于提取日期/时间类型的年、月、日、小时、分钟和秒。 格式应从文件路径结束之前的第一个分区键位置开始。 例如,给定路径“../Accounts/2019/01/01/data.parquet”,其中分区是按部门名称和时间划分的;partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.parquet' 创建值为“Accounts”的字符串列“Department”和值为“2019-01-01”的日期/时间列“PartitionDate”。

path_glob
str
必需

一种类似 glob 的模式,用于筛选将读取为分隔文件的文件。 如果设置为“无”,则所有文件都将作为带分隔符的文件读取。

Glob 是 Unix 样式的路径名模式扩展:https://docs.python.org/3/library/glob.html

例如,

  • * .csv -> 选择文件扩展名为 .csv 的文件
  • test_.csv* -> 选择文件名以 test_ 开头并且文件扩展名为 .csv 的文件
  • /myrootdir/project_one//.txt* -> 选择位于 /myrootdir/project_one/ 深处的两个子目录并且文件扩展名为 .txt 的文件/

注意:在大型目录树中使用 **** 模式可能会消耗过多的时间。 一般情况下,对于大型目录树,使用更具体的 glob 模式可以提高性能。

set_column_types
dict[str, DataType]
必需

用于设置列数据类型的字典,其中键是列名称,值为 DataType。 不在字典中的列将保留为字符串类型。 传递 None 将导致不进行转换。 源数据中找不到的列的条目不会导致错误,将被忽略。

返回

一个 OutputTabularDatasetConfig 实例,其中说明了如何将输出转换为 TabularDataset。

返回类型

read_parquet_files

通过将所有输出作为 Parquet 的文件读取,将输出数据集转换为表格数据集。

表格数据集通过分析中间输出 (指向) 的 parquet 文件创建。

read_parquet_files(include_path=False, partition_format=None, path_glob=None, set_column_types=None)

参数

include_path
bool
必需

将路径信息保留为数据集中的列的布尔值。 默认为 False。 在读取多个文件,并且想要知道特定记录源自哪个文件,或者想要在文件路径中保留有用的信息时,这非常有用。

partition_format
str
必需

指定路径的分区格式。 默认值为“None”。 将会基于指定的格式将每个路径的分区信息提取到列中。 格式部分“{column_name}”创建字符串列,“{column_name:yyyy/MM/dd/HH/mm/ss}”创建日期/时间列,其中“yyyy”、“MM”、“dd”、“HH”、“mm”和“ss”分别用于提取日期/时间类型的年、月、日、小时、分钟和秒。 格式应从文件路径结束之前的第一个分区键位置开始。 例如,给定路径“../Accounts/2019/01/01/data.parquet”,其中分区是按部门名称和时间划分的;partition_format='/{Department}/{PartitionDate:yyyy/MM/dd}/data.parquet' 创建值为“Accounts”的字符串列“Department”和值为“2019-01-01”的日期/时间列“PartitionDate”。

path_glob
str
必需

一种类似 glob 的模式,用于筛选将读取为 parquet 文件的文件。 如果设置为“无”,则所有文件都将作为 parquet 文件读取。

Glob 是 Unix 样式的路径名模式扩展:https://docs.python.org/3/library/glob.html

例如,

  • * .parquet -> 选择文件扩展名为 .parquet 的文件
  • test_.parquet* -> 选择文件名以 test_ 开头并且文件扩展名为 .parquet 的文件
  • /myrootdir/project_one//.parquet* -> 选择位于 /myrootdir/project_one/ 深处的两个子目录并且文件扩展名为 .parquet 的文件/

注意:在大型目录树中使用 **** 模式可能会消耗过多的时间。 一般情况下,对于大型目录树,使用更具体的 glob 模式可以提高性能。

set_column_types
dict[str, DataType]
必需

用于设置列数据类型的字典,其中键是列名称,值为 DataType。 不在字典中的列将保持从 parquet 文件加载的类型。 传递 None 将导致不进行转换。 源数据中找不到的列的条目不会导致错误,将被忽略。

返回

一个 OutputTabularDatasetConfig 实例,其中说明了如何将输出转换为 TabularDataset。

返回类型