pyspark для преобразования json строковое значение в паркете в csv - PullRequest
0 голосов
/ 17 июня 2020

Я сохраняю json строку в одном из столбцов моего паркета. Я хочу преобразовать этот паркет в формат csv. Я использую pyspark для чтения паркета и записи его в CSV.

Код:

df=spark.read.parquet("db997999a0114d7392cd96407aebec3d.parquet")
df.write.option("header", "true").csv("db997999a0114d7392cd96407aebec3d.csv")    





parquet:
Col1  Col2  Col3                                                                    Col4 COL5
10    2.1    "{'HL7': {'OBR-8': '20200508091606.8160+0530', 'OBX-2': 'NM', 'OBX-3':  1.0  2.3
             147842^MDC_ECG_HEART_RATE^MDC', 'OBX-4': '1.5.0.1'}}"
11    3.1    {'HL7': {'OBR-8': '20200508091606.8160+0530', 'OBX-2': 'NM', 'OBX-3':    11   18
             147842^MDC_ECG_HEART_RATE^MDC', 'OBX-4': '1.5.0.1'}}

Я ожидал, что

Ожидаемый CSV:

Col1  Col2  Col3                                                                    Col4 Col5
 10    2.1    {'HL7': {'OBR-8': '20200508091606.8160+0530', 'OBX-2': 'NM', 'OBX-3':  0.1 2.3
                 147842^MDC_ECG_HEART_RATE^MDC', 'OBX-4': '1.5.0.1'}}
 11    3.1    {'HL7': {'OBR-8': '20200508091606.8160+0530', 'OBX-2': 'NM', 'OBX-3':  11  18
                 147842^MDC_ECG_HEART_RATE^MDC', 'OBX-4': '1.5.0.1'}}

O

При записи csv col3

Вывод Actaul:

Col1 COl2 Col3                                  COl4                                        COl5
 10    2.1  {'HL7': {'OBR-8': '20200508091606.8160+0530' 'OBX-2': 'NM'   'OBX-3':  1.0  2.3            147842^MDC_ECG_HEART_RATE^MDC
 11    3.1  {'HL7': {'OBR-8': '20200508091606.8160+0530'  OBX-2': 'NM' 'OBX-3':    11   18 147842^MDC_ECG_HEART_RATE^MDC'

Похоже, это потому, что запятой в json и, вероятно, искра рассматривает команду как отдельное значение для строки json.

Любое предложение, как с этим справиться

...