gpt4 book ai didi

apache-spark - 第一次执行 spark 大约需要 13 秒,但第二次,每隔一次执行需要 3.5 秒

转载 作者:行者123 更新时间:2023-12-03 16:56:10 25 4
gpt4 key购买 nike

我正在使用 pyspark 和 Flask 进行交互式 spark 作为服务应用程序。
我的应用程序应该得到一些带有一些参数的请求并返回响应。我的代码在这里:

//first I make udf function
def dict_list(x, y):
return dict((zip(map(str, x), map(str, y))))

dict_list_udf = F.udf(lambda x, y: dict_list(x, y),
types.MapType(types.StringType(), types.StringType()))

//then I read my table from cassandra
df2 = spark.read \
.format("org.apache.spark.sql.cassandra") \
.options(table="property_change", keyspace="strat_keyspace_cassandra_raw2") \
.load()

@app.route("/test/<serviceMatch>/<matchPattern>")
def getNodeEntries1(serviceMatch, matchPattern):

result_df = df2.filter(df2.id.like(matchPattern + "%") & (df2.property_name == serviceMatch)) \
.groupBy("property_name") \
.agg(F.collect_list("time").alias('time'), F.collect_list("value").alias('value'))

return json.dumps(result_df.withColumn('values', dict_list_udf(result_df.time, result_df.value)).select('values').take(1))

当我启动我的服务器(使用 spark 提交)并使用 Postman 获取请求时,我第一次需要大约 13 秒来给我响应,之后每隔大约 3 秒响应。开始时延迟 13 秒为用户服务是 Not Acceptable 。我是新 Spark 用户,我假设这种行为是由于 Spark 性质,但我不知道究竟是什么导致它。 Maube 关于缓存或编译执行计划的一些东西,比如 sql 查询。有没有机会我可以解决这个问题。 Ps 我是新用户,如果我的问题不够清楚或其他任何问题,请见谅。

最佳答案

这种延迟是完全可以预料的。跳过一个简单的事实,即 Spark 并非旨在直接嵌入到交互式应用程序中(也不适合实时查询),这只是一个显着的开销

  • 初始化上下文。
  • 从集群管理器获取资源。
  • 从 Cassandra 获取元数据。

  • 问题是在这里使用 Spark 是否有意义——如果您需要接近实时的响应,并且您使用 native Cassandra connector 收集完整的结果给驱动程序应该是更好的选择。

    但是,如果您计划执行 Cassandra 本身不支持的逻辑,那么您所能做的就是接受这种间接架构的成本。

    关于apache-spark - 第一次执行 spark 大约需要 13 秒,但第二次,每隔一次执行需要 3.5 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55007776/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com