用于独立python或scala脚本的spark cassandra连接器

时间:2015-09-11 07:39:50

标签: cassandra apache-spark connector

我对Cassandra和Spark很新。以下是我到目前为止所做的事情: 1)安装Cassandra 2.1.8版本增加了lucene二级索引。添加了测试数据。 2)预先构建Spark 1.4.1 3)我有Spark Cassandra连接器Jars。

我可以使用./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框架吗?
  4. 目前我只是在cgi-bin上尝试一个简单的Python脚本。问题是,如何在Python脚本中添加连接器--jars?

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

    任何帮助都将受到高度赞赏。

    先谢谢

1 个答案:

答案 0 :(得分:0)

您有几个选项,最简单的方法是使用Spark包中的发行版

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

指定它

如果您想使用自己的组装罐,请使用

- jars flag

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

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