繁体   English   中英

兑换 对象到数据框-pyspark

convert object to dataframe - pyspark

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想一个接一个地处理多个json记录。 我的代码读取多个json并将它们存储到dataframe中。 现在我想从数据帧中逐行处理json文档。 当我从数据帧中获取行时,我需要再次将该行转换为数据帧,并对此进行一些操作。 我被困在将类'pyspark.sql.types.Row'对象转换为dataframe。

df = spark.read.format("com.mongodb.spark.sql.DefaultSource").option("uri","mongodb://127.0.0.1/mydatabase.sample").load()
A = u(funcRowIter,df.schema)
z = df.withColumn("new_column",A(struct([df[x] for x in df.columns])))
z.show()

def funcRowIter(rows):
print type(rows)
if(rows is not None):

        rdf = sqlContext.createDataFrame(rows)
        rdf.show()
        return rows  

帮我把类'pyspark.sql.types.Row'对象转换为dataframe。 我的行对象是巨大的json文件。

这是我试图从mongodb读取的json

{
"Feed": {
    "feedBody": {
        "Reservation": {
            "recordLocatorID": "X23344", 
            "pnrCreateDate": "2018-09-24T23:00:00.000", 
            "lastUpdateTimestamp": "2018-09-26T14:51:01.643", 
            "pnrReservationSystemSequenceID": "1643", 
            "pnrPurgeDate": "2018-10-11", 
            "passengerCount": "1", 
            "reservationSystemCode": "1X", 
            "passengerList": {
                "passenger": {
                    "passengerID": "2", 
                    "lastUpdateTimestamp": "2018-09-24T18:00:54.835", 
                    "dateOfBirth": "1993-10-02", 
                    "givenName": "fgdfg", 
                    "surName": "fgdfg", 
                    "gender": "M", 
                    "infantIndicator": "true", 
                    "seatCount": "1", 
                    "reservationSystemCustomerID": "dfgdfg", 
                    "passengerTypeCode": "dfgfd", 
                    "groupDepositIndicator": "false", 
                    "passengerTicketDocList": {
                        "passengerTicketDoc": {
                            "ticketDocID": "45", 
                            "lastUpdateTimestamp": "2018-09-24T18:01:01.149", 
                            "ticketNumber": "43434343434", 
                            "ticketType": "T", 
                            "ticketIndicator": "E", 
                            "status": "T", 
                            "issuanceDate": "2010-09-20", 
                            "chargeAmount": "0.74", 
                            "currency": "USD"
                        }
                    }

               }

            }
        }
    }
}

}

这是行输出

   Row(Feed=Row(
    feedBody=Row(
        Reservation=Row(
            recordLocatorID=u'X23344', 
            pnrCreateDate=u'2018-09-24T23:00:00.000', 
            lastUpdateTimestamp=u'2018-09-26T14:51:01.643', 
            pnrReservationSystemSequenceID=u'1643', 
            pnrPurgeDate=u'2018-10-11', 
            passengerCount=u'1', 
            reservationSystemCode=u'1X', 
            passengerList=Row(
                passenger=Row(
                passengerID=u'2', 
                lastUpdateTimestamp=u'2018-09-24T18:00:54.835', 
                dateOfBirth=u'1993-10-02', 
                givenName=u'fgdfg', 
                surName=u'fgdfg', 
                gender=u'M', 
                infantIndicator=u'true', 
                seatCount=u'1', 
                reservationSystemCustomerID=u'dfgdfg', 
                passengerTypeCode=u'dfgfd', 
                groupDepositIndicator=u'false', 
                passengerTicketDocList=Row(
                    passengerTicketDoc=Row(
                        ticketDocID=u'45', 
                        lastUpdateTimestamp=u'2018-09-24T18:01:01.149', 
                        ticketNumber=u'43434343434', 
                        ticketType=u'T', 
                        ticketIndicator=u'E', 
                        status=u'T', 
                        issuanceDate=u'2010-09-20', 
                        chargeAmount=u'0.74', 
                        currency=u'USD'))))))), _id=Row(oid=u'5bc0cc8c2ec34dd42a44fc2f'))
问题暂未有回复.您可以查看右边的相关问题.
2 如何转换类型 到矢量

我是Spark的新手,目前我正在尝试使用Python编写一个简单的代码,在一组数据上执行KMeans。 我将这些输入到pyspark shell中,当它运行model = kmeans.fit(vdf)时,我收到以下错误: TypeError:无法将类型转换为Vector ...

3 pyspark.sql.types.Row 列出

我的初始数据集是: dict 值的类型是pyspark.sql.types.Row 如何将dict转换为userid列表? 像下面这样: 只需获取用户 ID 列表。 ...

4 pyspark.sql.types.Row与pyspark.sql.Row

我正在将Pyspark与Spark版本3.0.0一起使用,并且当我尝试获取数据框的单行的类型时,例如: 然后我得到它 pyspark.sql.types.Row 但是在文档中我找不到这种类型,而是找到pyspark.sql.Row类型。 我猜两者都是一样的,如果有什么区别,为什么它显示 ...

7 具有多种数据类型的Pyspark SQL数据框映射

我在粘胶中有一个pyspark代码,我想在其中创建一个具有映射结构的数据帧,该数据帧是整数和字符串的组合。 样本数据: 因此,我尝试使用以下代码创建地图数据类型。 但是每次将整数数据类型jobLevel转换为字符串数据类型。 有什么建议可以通过保留作业级别的数据类型来完成此工作吗? 使用的代 ...

8 PySpark Dataframe - 将字符串列转换为 Json 对象

我的 pyspark 数据框中有一列,其结构如下: 但是该列的数据类型是 String 类型。 如果我做以下, 下面是我得到的错误 请让我知道如何解决这个问题,因为我需要将此字符串转换为 json 对象或 struct 。 提前致谢。 ...

9 按行切片Spark的DataFrame SQL(pyspark)

我有一个Spark的Dataframe镶木地板文件,可以通过spark读取,如下所示 我想在df.iloc[0:4000], df.iloc[4000:8000]数据帧中按行(即相当于df.iloc[0:4000], df.iloc[4000:8000]等)切片我的数据帧df ,因为我想 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM