dask.dataframe.read_json
dask.dataframe.read_json¶
- dask.dataframe.read_json(url_path, orient='records', lines=None, storage_options=None, blocksize=None, sample=1048576, encoding='utf-8', errors='strict', compression='infer', meta=None, engine=<function read_json>, include_path_column=False, path_converter=None, **kwargs)[源代码]¶
从一组JSON文件创建一个数据框
这使用了
pandas.read_json()
,并且大多数参数是直接传递的 - 请参阅其文档字符串。差异:默认情况下,orient 为 ‘records’,并设置 lines=True;这适用于行分隔的“JSON-lines”数据,这种类型的 JSON 输出在大数据场景中最常见,并且在读取时可以分块(参见
read_json()
)。所有其他选项都需要设置 blocksize=None,即每个输入文件一个分区。- 参数
- url_path: str, list of str
读取位置。如果是字符串,可以包含通配符来查找一组文件名。支持协议规范,例如
"s3://"
。- 编码, 错误:
要实现的文本编码,例如“utf-8”,以及如何在转换中处理错误(参见
str.encode()
)。- orient, lines, kwargs
传递给 pandas;如果未指定,当 orient=’records’ 时,lines=True,否则为 False。
- storage_options: dict
传递给后端文件系统实现
- blocksize: None 或 int
如果为 None,文件不会被阻塞,每个输入文件对应一个分区。如果为 int,这只能用于行分隔的 JSON 文件,每个分区的大小将大约为此字节数,以最近的换行符为准。
- 示例: int
预加载的字节数,为没有数据的块提供一个空的数据框结构。仅在使用块大小时相关。
- 编码, 错误:
文本转换,
参见 bytes.decode()
- 压缩字符串或无
类似 ‘gzip’ 或 ‘xz’ 的字符串。
- 引擎 : 可调用对象或字符串, 默认
pd.read_json
可调用对象或字符串,默认 dask 用于读取 JSON 文件的底层函数。默认情况下,这将是 pandas 的 JSON 读取器(
pd.read_json
)。如果指定了一个字符串,该值将作为engine
关键字参数传递给 ``pd.read_json``(仅支持 pandas>=2.0)。- include_path_column布尔值或字符串,可选
在数据框中包含一个列,显示每行数据来源的文件路径。如果
True
,则在数据框中添加一个名为path
的新列。如果为str
,则设置新列的名称。默认值为False
。- 路径转换器函数或无,可选
一个接受一个参数并返回字符串的函数。用于转换
path
列中的路径,例如,从所有路径中去除一个共同的前缀。- metapd.DataFrame, pd.Series, dict, iterable, tuple, optional
一个空的
pd.DataFrame
或pd.Series
,其数据类型和列名与输出匹配。此元数据对于 dask dataframe 中的许多算法正常工作是必要的。为了便于使用,还提供了一些替代输入。除了DataFrame
之外,还可以提供{name: dtype}
的字典或(name, dtype)
的可迭代对象(注意名称的顺序应与列的顺序匹配)。除了系列之外,还可以使用(name, dtype)
的元组。如果未提供,dask 将尝试推断元数据。这可能会导致意外结果,因此建议提供meta
。有关更多信息,请参阅dask.dataframe.utils.make_meta
。
- 返回
- dask.DataFrame
示例
加载单个文件
>>> dd.read_json('myfile.1.json')
加载多个文件
>>> dd.read_json('myfile.*.json')
>>> dd.read_json(['myfile.1.json', 'myfile.2.json'])
使用大约256MB大小的分区加载大型行分隔的JSON文件
>> dd.read_json(‘data/file*.csv’, blocksize=2**28)