如何将值列表传递到 json+sparksql 中的 rdd
Posted
技术标签:
【中文标题】如何将值列表传递到 json+sparksql 中的 rdd【英文标题】:How to pass list of values into rdd in json+sparksql 【发布时间】:2015-05-26 11:45:11 【问题描述】:如何将值列表传递到 rdd = sqlContext.jsonFile("tmp.json")
我有列表list1=["name","age","gener",........]
rdd_new=rdd.map(lambda x:x.(i want all list values)
【问题讨论】:
【参考方案1】:我不确定你在这里的意思。如果要使用 map 函数中的外部列表,请将该列表设为广播变量,以便所有函数都可以使用该列表的只读副本。这是一个例子:
广播> 广播列表 = sc.broadcast(list1); 最终列表 query_list = broadlist.value();
现在您可以在 map 函数中访问 query_list ,就好像它是一个全局变量一样。 请告诉我这是否是您想要的。
【讨论】:
>>> 从 pyspark.sql 导入 SQLContext >>> sqlContext = SQLContext(sc) >>> rdd =sqlContext.jsonFile("tmp.json") >>> rdd_new= rdd.map( lambda x:x.name,x.age) 它工作正常。但是有 值列表 list1=["name","age","gene","xyz",... ..] 当我在 list1 中传递 For each_value 时:rdd_new=rdd.map(lambda x:x.each_valuefrom list1)
我收到错误以上是关于如何将值列表传递到 json+sparksql 中的 rdd的主要内容,如果未能解决你的问题,请参考以下文章