在 databricks spark 中加载一个 json 文件,然后遍历 json 列表
load a json file in databricks spark then iterate through the json list
试图找出一种将 json 文件加载到 databricks spark 中的方法,将 json 放入字典中,然后遍历它。
现在我正在尝试使用 sc.textFile()
加载文件。
我的 json 文件如下所示:
{
"tablename": "a",
"tablename": "b",
"tablename": "c",
...........
"tablename": "z",
}
我想遍历 json 文件
我尝试过的事情:
data = json.load(open('data.json'))
没用
with open('data.json') as data_file:
data = json.load(data_file)
没用
感谢您的帮助
我假设您的 json 实际上不包含重复键。如果是这样,这可能是您的解决方案不起作用的原因。
否则以下代码片段将 json 文件读入字典并在 Python 2.7:
中遍历它
#! /usr/bin/python
# -*- coding: utf-8 -*-
import json
with open('stuff.json', 'r') as file_handler:
result = json.load(file_handler)
print(result) # {u'tablename1': u'b', u'tablename0': u'a', ...}
print(type(result)) # <type 'dict'>
for key, value in result.iteritems():
print('key: %s // value: %s' % (key, value)) # key: tablename1 // value: b
Python3.6的代码略有不同:
#! /usr/bin/python3
# -*- coding: utf-8 -*-
import json
with open('stuff.json', 'r') as file_handler:
result = json.load(file_handler)
print(result) # {u'tablename1': u'b', u'tablename0': u'a', ...}
print(type(result)) # <class 'dict'>
for key, value in result.items():
print('key: %s // value: %s' % (key, value)) # key: tablename1 // value: b
最简单的答案是您忘记了代码中的 .read()
方法
使用带有信息的文件
{
"tablename1": "a",
"tablename2": "b",
"tablename3": "c",
"tablename4": "z"
}
和代码
json.loads(open('foo.json'))
给出结果
{u'tablename1': u'a',
u'tablename2': u'b',
u'tablename3': u'c',
u'tablename4': u'z'}
试图找出一种将 json 文件加载到 databricks spark 中的方法,将 json 放入字典中,然后遍历它。
现在我正在尝试使用 sc.textFile()
加载文件。
我的 json 文件如下所示:
{
"tablename": "a",
"tablename": "b",
"tablename": "c",
...........
"tablename": "z",
}
我想遍历 json 文件
我尝试过的事情:
data = json.load(open('data.json'))
没用
with open('data.json') as data_file:
data = json.load(data_file)
没用
感谢您的帮助
我假设您的 json 实际上不包含重复键。如果是这样,这可能是您的解决方案不起作用的原因。
否则以下代码片段将 json 文件读入字典并在 Python 2.7:
中遍历它#! /usr/bin/python
# -*- coding: utf-8 -*-
import json
with open('stuff.json', 'r') as file_handler:
result = json.load(file_handler)
print(result) # {u'tablename1': u'b', u'tablename0': u'a', ...}
print(type(result)) # <type 'dict'>
for key, value in result.iteritems():
print('key: %s // value: %s' % (key, value)) # key: tablename1 // value: b
Python3.6的代码略有不同:
#! /usr/bin/python3
# -*- coding: utf-8 -*-
import json
with open('stuff.json', 'r') as file_handler:
result = json.load(file_handler)
print(result) # {u'tablename1': u'b', u'tablename0': u'a', ...}
print(type(result)) # <class 'dict'>
for key, value in result.items():
print('key: %s // value: %s' % (key, value)) # key: tablename1 // value: b
最简单的答案是您忘记了代码中的 .read()
方法
使用带有信息的文件
{
"tablename1": "a",
"tablename2": "b",
"tablename3": "c",
"tablename4": "z"
}
和代码
json.loads(open('foo.json'))
给出结果
{u'tablename1': u'a',
u'tablename2': u'b',
u'tablename3': u'c',
u'tablename4': u'z'}