我在ADLS中有多个文件,我想将它们转换为单个csv,但不使用Pandas。是否可以使用Pyspark转换它们?
这些文件来自API,其中有225000条记录。我正在使用此脚本将其转换为csv
nmpmafwu1#
您可以将所有JSON文件放在一个文件夹中,然后使用以下命令导入所有JSON文件:spark.read.option("multiLine", True).json("/path/to/folder") .然而,将JSON文件导入dataframe有点棘手,因为您可能无法获得所需的格式,并且您可能必须在导入之前预处理JSON文件或在导入后预处理Spark dataframe。例如,假设每个大洲的JSON文件:
spark.read.option("multiLine", True).json("/path/to/folder")
NA.json { "US" : { "capital": "Washington, D.C.", "population in million": 330 }, "Canada" : { "capital": "Ottawa", "population in million": 38 } } EU.json { "England" : { "capital": "London", "population in million": 56 }, "France" : { "capital": "Paris", "population in million": 67 } } AUS.json { "Australia" : { "capital": "Canberra", "population in million": 25 }, "New Zealand" : { "capital": "Wellington", "population in million": 5 } }
导入这些文件时,根JSON对象Map到每一列,嵌套JSON数据Map为嵌套Map:
df = spark.read.option("multiLine", True).json("/content/sample_data/json") +--------------+------------+------------+-----------+---------------+--------------------+ | Australia| Canada| England| France| New Zealand| US| +--------------+------------+------------+-----------+---------------+--------------------+ |{Canberra, 25}| null| null| null|{Wellington, 5}| null| | null|{Ottawa, 38}| null| null| null|{Washington, D.C....| | null| null|{London, 56}|{Paris, 67}| null| null| +--------------+------------+------------+-----------+---------------+--------------------+
根据JSON文件的结构,您必须处理两件事:
{Canberra, 25}
1条答案
按热度按时间nmpmafwu1#
您可以将所有JSON文件放在一个文件夹中,然后使用以下命令导入所有JSON文件:
spark.read.option("multiLine", True).json("/path/to/folder")
.然而,将JSON文件导入dataframe有点棘手,因为您可能无法获得所需的格式,并且您可能必须在导入之前预处理JSON文件或在导入后预处理Spark dataframe。
例如,假设每个大洲的JSON文件:
导入这些文件时,根JSON对象Map到每一列,嵌套JSON数据Map为嵌套Map:
根据JSON文件的结构,您必须处理两件事:
{Canberra, 25}
所示您可能需要转换此类型以将所有数据转换为表格形式