【问题标题】:spark cassandra connector for standalone python or scala script用于独立 python 或 scala 脚本的 spark cassandra 连接器
【发布时间】:2015-12-07 16:46:09
【问题描述】:

我对 Cassandra 和 Spark 非常陌生。以下是我到目前为止所做的事情: 1) 安装 Cassandra 2.1.8 版本添加了 lucene 二级索引。添加了测试数据。 2) 已预建 Spark 1.4.1 3) 我有 Spark Cassandra 连接器罐子。

我可以使用 ./spark-shell --jars /pathy/to/spark-cassandra-connector/spark-cassandra-connector-assembly-1.5.0-M1-SNAPSHOT.jar 和

./pyspark --jars /path/to/pyspark_cassandra-0.1.5.jar --driver-class-path /path/to/pyspark_cassandra-0.1.5.jar --py-files /path/to/ pyspark_cassandra-0.1.5-py2.6.egg

同时使用,我可以查询 cassandra 表。

我的要求如下-

我们在一个远程服务器上的应用程序是 PHP 的。这个带有一些过滤器的应用程序将从 spark cassandra 层请求数据。

  1. 处理此请求的最佳方式是什么?
  2. 首选语言是 Python 还是 Scala?
  3. 使用 REST API 推荐使用哪个 scala 框架?

目前我只是在 cgi-bin 上尝试一个简单的 Python 脚本。问题是,如何在 Python 脚本中添加连接器 --jars?

我试过 conf.set("spark.jars","/jar/path") 不起作用。

任何帮助将不胜感激。

提前致谢

【问题讨论】:

    标签: cassandra apache-spark connector


    【解决方案1】:

    你有几个选择,最简单的方法是使用 Spark Packages 的发行版

    http://spark-packages.org/package/datastax/spark-cassandra-connector

    > $SPARK_HOME/bin/pyspark --packages com.datastax.spark:spark-cassandra-connector_2.10:1.4.0-M3
    

    您只需使用 --packages 指定它

    如果您想使用自己组装的罐子,只需使用

    --jar 标志

    如果您只想访问 Dataframe,则可以在没有 TargetHolding jar 的情况下使用它。如果您不需要直接 api,我建议您这样做,因为以这种方式使用 Dataframe 将确保您的所有实际代码都将在本机 scala 中运行,并且无需在序列化中来回切换。

    如果您能提供帮助,我不会尝试从独立脚本运行它。始终通过 spark-submit 或 pyspark 运行。

    【讨论】:

    • 嗨 RussS,“如果你只想要 Dataframe 访问,你可以在没有 TargetHolding jar 的情况下使用它”我无法遵循这个,你能解释一下吗。如果可能的话,请分享一些带有示例的链接。谢谢
    • @RussS 我正在使用你提到的 --packages 方法。它成功下载了所需的依赖 jar 并进入 pyspark shell。但是从 pyspark_cassandra import CassandraSparkContext Traceback 得到以下错误
      >>> (最近一次调用最后一次): File "", line 1, in ImportError: No module named pyspark_cassandra
      我是缺少什么?
    • @rajnandy pyspark_cassandra 是一个单独的项目,包含在不同的包中。
    猜你喜欢
    • 2016-08-02
    • 1970-01-01
    • 2016-12-16
    • 2019-02-12
    • 1970-01-01
    • 2017-11-27
    • 2015-09-04
    • 2016-05-10
    • 1970-01-01
    相关资源
    最近更新 更多