在pyspark中读取json文件

阿努沙

我是PySpark的新手,以下是我来自kafka的JSON文件格式。

{
        "header": {
        "platform":"atm",
        "version":"2.0"
       }
        "details":[
       {
        "abc":"3",
        "def":"4"
       },
       {
        "abc":"5",
        "def":"6"
       },
       {
        "abc":"7",
        "def":"8"
       }    
      ]
    }

我该如何仔细阅读所有值,"abc" "def"并将其添加到这样的新列表中[(1,2),(3,4),(5,6),(7,8)]新列表将用于创建火花数据框。我怎么能在pyspark.This中尝试以下代码。

parsed = messages.map(lambda (k,v): json.loads(v))
list = []
summed = parsed.map(lambda detail:list.append((String(['mcc']), String(['mid']), String(['dsrc']))))
output = summed.collect()
print output

产生错误“太多值无法解包

声明以下错误消息 summed.collect()

16/09/12 12:46:10弃用INFO:已弃用mapred.task.is.map。相反,请使用mapreduce.task.ismap 16/09/12 12:46:10信息弃用:已弃用mapred.task.partition。相反,请使用mapreduce.task.partition 12/09/12 12:46:10信息弃用:mapred.job.id已弃用。相反,请使用mapreduce.job.id 16/09/12 12:46:10错误执行程序:任务1.0在阶段0.0(TID 1)org.apache.spark.api.python.Python.PythonException中的异常:Traceback(最近一次调用):在主process()文件的第111行,文件“ /usr/hdp/2.3.4.0-3485/spark/python/lib/pyspark.zip/pyspark/worker.py”,文件“ /usr/hdp/2.3.4.0 -3485 / spark / python / lib / pyspark.zip / pyspark / worker.py”,行106,在进程serializer.dump_stream(func(split_index,iterator),outfile)文件“ /usr/hdp/2.3.4.0-3485”中/spark/python/lib/pyspark.zip/pyspark/serializers.py”,第263行,

福科·德里斯蓬

首先,json无效。标头后,缺少a。

话虽如此,让我们来看看这个json:

{"header":{"platform":"atm","version":"2.0"},"details":[{"abc":"3","def":"4"},{"abc":"5","def":"6"},{"abc":"7","def":"8"}]}

可以通过以下方式处理:

>>> df = sqlContext.jsonFile('test.json')
>>> df.first()
Row(details=[Row(abc='3', def='4'), Row(abc='5', def='6'), Row(abc='7', def='8')], header=Row(platform='atm', version='2.0'))

>>> df = df.flatMap(lambda row: row['details'])
PythonRDD[38] at RDD at PythonRDD.scala:43

>>> df.collect()
[Row(abc='3', def='4'), Row(abc='5', def='6'), Row(abc='7', def='8')]

>>> df.map(lambda entry: (int(entry['abc']),     int(entry['def']))).collect()
[(3, 4), (5, 6), (7, 8)]

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章