代码之家  ›  专栏  ›  技术社区  ›  Yehuda

在Spark cluster中分发下载

  •  1
  • Yehuda  · 技术社区  · 8 年前

    在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函数

    1 回复  |  直到 8 年前
        1
  •  2
  •   user9011188    8 年前

    如何在地图上使用SparkContext/HiveContext/xContext函数

    你不能。无法访问 SparkContext / SQLContext 在工人身上。

    如何分发请求。在集群上获取(url)?

    由于insert不是幂等的,所以任何失败都会导致表的状态不一致。这是高粒度任务管理器(如芹菜)或工作流管理器(如Luigi或Airflow)的工作。

    推荐文章