使用pyspark读取S3中的流式json文件

使用pyspark读取S3中的流式json文件,json,pyspark,spark-streaming,spark-dataframe,pyspark-sql,Json,Pyspark,Spark Streaming,Spark Dataframe,Pyspark Sql,我正在使用python spark sql读取从Kinesis发送的流文件。嵌套的Json流保存并压缩到S3 bucket中。这些gzip文件不是标准的json格式,它只是有一堆json对象,没有逗号分隔。并且在文件的开头和结尾都没有[]。以下是示例,示例中有2个json对象,我希望每个对象都可以是输出中的一行: { "id": "0001", "type": "donut", "name": "Cake", "ppu": 0.55, "batters":

我正在使用python spark sql读取从Kinesis发送的流文件。嵌套的Json流保存并压缩到S3 bucket中。这些gzip文件不是标准的json格式,它只是有一堆json对象,没有逗号分隔。并且在文件的开头和结尾都没有[]。以下是示例,示例中有2个json对象,我希望每个对象都可以是输出中的一行:

{
    "id": "0001",
    "type": "donut",
    "name": "Cake",
    "ppu": 0.55,
    "batters":
        {
            "batter":
                [
                    { "id": "1001", "type": "Regular" },
                    { "id": "1002", "type": "Chocolate" },
                    { "id": "1003", "type": "Blueberry" },
                    { "id": "1004", "type": "Devil's Food" }
                ]
        }
}
{
    "id": "0002",
    "type": "donut",
    "name": "Cake",
    "ppu": 0.65,
    "batters":
        {
            "batter":
                [
                    { "id": "1221", "type": "Regular" },
                    { "id": "1223", "type": "Chocolate" },
                    { "id": "1225", "type": "Blueberry" },
                    { "id": "1228", "type": "Devil's Food" }
                ]
        }
}
我可以使用pyspark
sqlContext.read.json('streaming.json')
读取此文件,但函数只返回第一个对象。当我向这些json对象添加[]和逗号separate时,它成功地读取了这两个对象。但在我的例子中,我每天有1 TB的文件,很难将流媒体转换成标准json文件。我是spark的新手,有没有一种方法可以使用spark或sparkSQL读取这些流json对象?我期望的输出是json展平csv或保存回S3的数据帧。非常感谢