在Spark以下实现的最佳方法是什么:
def read_json(url):
resp = requests.get(url)
resultRDD = sc.parallelize(json.loads(resp.content))
df = jsonRDD.toDF()
hiveContext.createDataFrame(resultRDD, df.schema).registerTempTable("tmp_tbl_1")
hiveContext.sql("INSERT INTO TABLE `sc1`.`tbl_data` SELECT * FROM tmp_tbl_1")
urlsRDD = sc.parallelize(["valid-url1.json","valid-url2.json","valid-url3.json"])
urlsRDD.map(read_json)
如何在集群上分发requests.get(url)
?
如何使用SparkContext/hivecontext/xcontext上的地图函数
如何使用SparkContext/hiveContext/xcontext上的地图函数
你不能。不可能在工人上访问SparkContext
/SQLContext
。
如何在群集上分发requests.gets.get(url)?
给定您不应该的逻辑。由于插入不是掌握的,因此任何故障都会导致表格状态不一致。这是高度精细的任务管理器(例如芹菜)或工作流程管理器(例如Luigi或AirFlow)的工作。