我试图在Spark 1.1.0中使用Spark Cassandra Connector.
我已经从GitHub上的主分支成功构建了jar文件,并且已经使用了包含的演示.但是,当我尝试将jar文件加载到spark-shell
我无法从com.datastax.spark.connector
包中导入任何类时.
我已经尝试使用该--jars
选项spark-shell
并将带有jar文件的目录添加到Java的CLASSPATH中.这些选项都不起作用.事实上,当我使用该--jars
选项时,日志输出显示Datastax jar正在加载,但我仍然无法从中导入任何内容com.datastax
.
我已经能够将Tuplejump Calliope Cassandra连接器加载到spark-shell
使用中--jars
,所以我知道它正在工作.这只是Datastax连接器,对我来说是失败的.
我正在使用 Kinesis 设置 Spark Streaming 项目,当我尝试连接到 Kinesis 流时,我从 Spark 收到以下错误:
ERROR ShardSyncTask: Caught exception while sync'ing Kinesis shards and leases
com.amazonaws.services.kinesis.clientlibrary.exceptions.internal.KinesisClientLibIOException: Parent shard shardId-000000000000 exists but not the child shard shardId-000000000002
Run Code Online (Sandbox Code Playgroud)
当我将测试数据发布到此流或使用基本 Amazon 库从流中读取数据时,我没有收到任何错误,这仅在我尝试与 Spark 连接时发生。
以下是我用于测试的代码:
val conf = new SparkConf().setMaster("local[2]").setAppName("KinesisCounter")
val ssc = new StreamingContext(conf, Seconds(1))
val rawStream = KinesisUtils.createStream(ssc, "dev-test", "kinesis.us-east-1.amazonaws.com", Duration(1000), InitialPositionInStream.TRIM_HORIZON, StorageLevel.MEMORY_ONLY)
rawStream.map(msg => new String(msg)).count.print
Run Code Online (Sandbox Code Playgroud) 当我遇到这行代码时,我正在浏览FSharp.Data的源代码
let (|Singleton|) = function [l] -> l | _ -> failwith "Parameter mismatch"
Run Code Online (Sandbox Code Playgroud)
这function [l]
是我不明白的.更具体地说,我不明白[l]
参数是如何工作的.
通过在FSI中进行实验,我可以确定它开始一种类似于的模式匹配形式match [l] with ...
.但是,我无法弄清楚F#编译器如何解释表达式.
我想知道的是它实际上是如何工作的以及它遵循的规则.
是否可以在Cassandra中的UUID/TIMEUUID列上创建索引?我正在测试一个模型设计,它会在UUID列上有一个索引,但是对该列的查询总是返回0行.
我有这样一张桌子:
create table some_data (site_id int, user_id int, run_id uuid, value int, primary key((site_id, user_id), run_id));
Run Code Online (Sandbox Code Playgroud)
我用这个命令创建一个索引:
create index idx on some_data (run_id) ;
Run Code Online (Sandbox Code Playgroud)
创建此索引时,CQL不会抛出任何错误.
我在表格中有一小部分测试数据:
site_id | user_id | run_id | value
---------+---------+--------------------------------------+-----------------
1 | 1 | 9e118af0-ac92-11e4-81ae-8d1bc921f26d | 3
Run Code Online (Sandbox Code Playgroud)
但是,当我运行查询时:
select * from some_data where run_id = 9e118af0-ac92-11e4-81ae-8d1bc921f26d
Run Code Online (Sandbox Code Playgroud)
CQLSH只返回: (0 rows)
如果我使用a int
,run_id
则索引的行为与预期一致.