У меня есть json, который имеет следующий тип:
{"key1":{"keyA":"val1","keyB":"val2"},"key2":
[{"keyC":"val3","keyD":"val4","key11":
[{"key21":"1","key22":"2"}],"key12":
[{"key23":"1","key24":"2"}] }]}
Сначала я преобразовал это в массив данных.Теперь я хочу преобразовать этот фрейм данных в словарь, но не могу его достичь.
Я использую код ниже, чтобы узнать тип конвертированного фрейма данных.
file_path='C:/Users/test/Desktop/usecase1/json.json'
spark=SparkSession.builder.appName("jsontohive").enableHiveSupport().getOrCreate()
dataframe = spark.read.json(file_path)
dic = dict()
for i in dataframe.rdd.collect():
dic = i.asDict()
for key in dic.keys():
print key
print dic.get(key)
ВыводЯ получаю в одной строке, как показано ниже:
key2
[Row(key11=[Row(key21=u'1', key22=u'2')], key12=[Row(key23=u'1',
key24=u'2')], keyC=u'val3', keyD=u'val4')]
key1
Row(keyA=u'val1', keyB=u'val2')
Не удалось преобразовать это правильно.Дайте мне знать, если вы можете помочь.
Прежде чем вы предложите читать JSON непосредственно в Python в качестве словаря.Вот несколько подсказок: есть инструмент, на котором нам нужно запустить этот код, где чтение json с использованием json lib в Python не является вариантом, нам нужно читать это как dataframe или только как rdd.