Apache spark 如何使用PySpark、SparkSQL和Cassandra?
我对这个故事中的不同角色有点困惑:PySpark、SparkSQL、Cassandra和PySpark Cassandra连接器 据我所知,Spark发展了很多,SparkSQL现在是具有“数据帧”的关键组件。显然,没有SparkSQL绝对没有理由工作,尤其是连接到Cassandra时 所以我的问题是:需要什么组件,如何以最简单的方式将它们连接在一起 使用Scala中的spark shell,我可以简单地Apache spark 如何使用PySpark、SparkSQL和Cassandra?,apache-spark,cassandra,pyspark,pyspark-sql,Apache Spark,Cassandra,Pyspark,Pyspark Sql,我对这个故事中的不同角色有点困惑:PySpark、SparkSQL、Cassandra和PySpark Cassandra连接器 据我所知,Spark发展了很多,SparkSQL现在是具有“数据帧”的关键组件。显然,没有SparkSQL绝对没有理由工作,尤其是连接到Cassandra时 所以我的问题是:需要什么组件,如何以最简单的方式将它们连接在一起 使用Scala中的spark shell,我可以简单地 ./bin/spark-shell --jars spark-cassandra-conn
./bin/spark-shell --jars spark-cassandra-connector-java-assembly-1.6.0-M1-SNAPSHOT.jar
然后
import org.apache.spark.sql.cassandra.CassandraSQLContext
val cc = new CassandraSQLContext(sc)
cc.setKeyspace("mykeyspace")
val dataframe = cc.sql("SELECT count(*) FROM mytable group by beamstamp")
我怎样才能用Pypark做到这一点
这里有几个子问题,以及我收集的部分答案,如果我错了,它们是正确的
需要pyspark casmandra吗?我不这么认为-我不明白一开始在做什么
我需要使用pyspark吗?或者我可以使用我的常规jupyter笔记本,自己导入必要的东西吗
在Python中,连接器公开了DataFrameAPI。只要spark cassandra连接器可用且SparkConf包含所需配置,就不需要额外的软件包。您只需指定格式和选项: df=sqlContext 阅读 .formatorg.apache.spark.sql.cassandra .options表=我的表,键空间=我的键空间 负载 如果希望使用普通SQL,则可以按如下方式注册数据帧: df.RegisterEmptableMyTable 选择性缓存 sqlContext.cacheTablemytable sqlContext.sqlSELECT count*从mytable组按beamstamp排序
连接器的高级功能(如CassandraRDD)不向Python公开,因此如果您需要数据帧功能以外的功能,那么pyspark cassandra可能会很有用。Python连接器中的数据帧API是公开的。只要spark cassandra连接器可用且SparkConf包含所需配置,就不需要额外的软件包。您只需指定格式和选项: df=sqlContext 阅读 .formatorg.apache.spark.sql.cassandra .options表=我的表,键空间=我的键空间 负载 如果希望使用普通SQL,则可以按如下方式注册数据帧: df.RegisterEmptableMyTable 选择性缓存 sqlContext.cacheTablemytable sqlContext.sqlSELECT count*从mytable组按beamstamp排序
连接器的高级功能(如CassandraRDD)不向Python公开,因此如果您需要数据帧功能以外的功能,则pyspark cassandra可能会很有用。pyspark应使用spark cassandra连接器包启动,如spark cassandra连接器中所述 加载此文件后,您将能够使用Spark on C*数据帧中已经存在的任何数据帧操作 要将其设置为与jupyter笔记本一起运行,只需使用以下属性设置您的环境
export PYSPARK_DRIVER_PYTHON=ipython
export PYSPARK_DRIVER_PYTHON_OPTS=notebook
调用pyspark将启动正确配置的笔记本电脑
没有必要使用pyspark cassandra,除非您在python中使用RDD时有一些性能缺陷。pyspark应该使用spark cassandra连接器包启动,如spark cassandra连接器中所述 加载此文件后,您将能够使用Spark on C*数据帧中已经存在的任何数据帧操作 要将其设置为与jupyter笔记本一起运行,只需使用以下属性设置您的环境
export PYSPARK_DRIVER_PYTHON=ipython
export PYSPARK_DRIVER_PYTHON_OPTS=notebook
调用pyspark将启动正确配置的笔记本电脑
没有必要使用pyspark cassandra,除非您在python中使用RDD,因为RDD存在一些性能缺陷。好的,谢谢。在Scala中,是否可以通过SQL api直接访问表?据我所知,这是不可能的。您当然可以像往常一样注册清空。而且,没有卡桑德拉的等价物。稍后我会发布一些代码,以确保我得到了正确的答案。好的,谢谢。在Scala中,是否可以通过SQL api直接访问表?据我所知,这是不可能的。您当然可以像往常一样注册清空。而且,没有卡桑德拉的等价物。稍后我会发布一些代码,以确保我得到了正确的答案。