Arp*_*pit 11 apache-spark apache-spark-sql pyspark
我在AWS上有一个集群,有2个从属和1个主服务器.所有实例都是m1.large类型.我正在运行Spark 1.4版本.我正在对来自红移的4米数据的火花性能进行基准测试.我通过pyspark shell发出了一个查询
df = sqlContext.load(source="jdbc", url="connection_string", dbtable="table_name", user='user', password="pass")
df.registerTempTable('test')
d=sqlContext.sql("""
select user_id from (
select -- (i1)
sum(total),
user_id
from
(select --(i2)
avg(total) as total,
user_id
from
test
group by
order_id,
user_id) as a
group by
user_id
having sum(total) > 0
) as b
"""
)
Run Code Online (Sandbox Code Playgroud)
当我执行d.count()时,上面的查询在df未缓存时需要30秒,df在内存中缓存时需要17秒.
我期待这些时间接近1-2秒.
这些是我的火花配置:
spark.executor.memory 6154m
spark.driver.memory 3g
spark.shuffle.spill false
spark.default.parallelism 8
Run Code Online (Sandbox Code Playgroud)
rest设置为默认值.任何人都能看到我在这里失踪的东西吗?
这是正常的,除了 Spark 会像 mysql 或 postgres 那样在几毫秒内运行。与 Hive、Impala 等其他大数据解决方案相比,Spark 的延迟较低……您无法将它与经典数据库进行比较,Spark 不是一个对数据进行索引的数据库!
观看此视频:https://www.youtube.com/watch?v =8E0cVWKiuhk
他们明确地将 Spark 放在这里:
您尝试过 Apache Drill 吗?我发现它更快一点(我将它用于小型 HDFS JSON 文件,2/3Gb,比用于 SQL 查询的 Spark 快得多)。
| 归档时间: |
|
| 查看次数: |
6758 次 |
| 最近记录: |