使用Spark 1.5和Scala 2.10.6
我正在尝试通过字段"tags"过滤数据帧,这是一个字符串数组.查找标记为"private"的所有行.
val report = df.select("*")
.where(df("tags").contains("private"))
Run Code Online (Sandbox Code Playgroud)
得到:
线程"main"中的异常org.apache.spark.sql.AnalysisException:由于数据类型不匹配,无法解析'Contains(tags,private)':参数1需要字符串类型,但是'tags'是数组类型.
过滤方法更适合吗?
更新:
数据来自cassandra适配器,但是一个显示我正在尝试做的最小例子,并且还得到上述错误:
def testData (sc: SparkContext): DataFrame = {
val stringRDD = sc.parallelize(Seq("""
{ "name": "ed",
"tags": ["red", "private"]
}""",
"""{ "name": "fred",
"tags": ["public", "blue"]
}""")
)
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.implicits._
sqlContext.read.json(stringRDD)
}
def run(sc: SparkContext) {
val df1 = testData(sc)
df1.show()
val report = df1.select("*")
.where(df1("tags").contains("private"))
report.show()
}
Run Code Online (Sandbox Code Playgroud)
更新:标签数组可以是任意长度,'私人'标签可以在任何位置
更新:一个有效的解决方案:UDF
val filterPriv = udf {(tags: mutable.WrappedArray[String]) => tags.contains("private")}
val report = df1.filter(filterPriv(df1("tags")))
Run Code Online (Sandbox Code Playgroud) 我需要在C中实现内存中的字符串元组匹配功能.将有大量的元组列表与不同的操作相关联,并且要与列表匹配大量事件.
元组列表:
("one", "four")
("one")
("three")
("four", "five")
("six")
Run Code Online (Sandbox Code Playgroud)
事件("一","二","三","四")应匹配列表项("一","四")和("一")和("三")但不匹配("四", "五"而不是("六")
我当前的方法使用所有元组字段值的映射作为使用该值的每个元组的列表的键.有很多冗余哈希和列表插入.
有没有正确或经典的方法来做到这一点?
试图从当前'.'加载共享库.dir在osx的单元测试中.
什么适用于Linux和Netbsd有一个符号链接 _mymodule.so --> ../.libs/libmymodule.so
但在osx上,python import mymodule不会找到
_mymodule.dylib --> ../.libs/libmymodule.dylib
Run Code Online (Sandbox Code Playgroud)
我试过添加
export DYLD_LIBRARY_PATH=.:$DYLD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
到脚本env,nogo.任何帮助赞赏.
-ed
更新4/6/10:
解决了下面krunk的信息.但是只是复制或者将dylib复制到.so名称并没有完全解决它.仍然不会加载.但是告诉libtool将lib与-module标志链接起来会创建一个将加载的.so库.lib的Python版本现在可以使用了.
现在,如果我可以让perl lib工作.我正在构建swig perl,python,ruby和lua libs,这个修复只能让python和lua工作.
寻找一种方法来使用gcloud命令行来获取容器引擎注册表图像的标记.
此命令
cloud docker search gcr.io/PROJECT/myimage
返回
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
PROJECT/myimage 0
但我想看到目前为止使用的标签,如gcloud Web控制台显示.
我运行此命令的机器从docker hub中提取图像,标记它们,然后将它们推送到谷歌容器引擎 gcloud docker push...
我怀疑我可能会问如何使本地docker客户端针对google repo和docker hub repo执行命令,以便我可以获取docker images列表
******更新:请参阅/sf/answers/2664287741/以获取最新版本中的此功能.
使用mongo v2.4.5 shell,db.col.find().pretty()在osx控制台或linux ubuntu 12.04 bash上都没有打印出来.
输出中没有diff,有没有pretty()
> db.people.find()
{ "_id" : ObjectId("520d293752cfe6ece5d3fd77"), "name" : "Andrew" }
{ "_id" : ObjectId("520e448b77803f8f15fcfedb"), "name" : "Amy" }
>
> db.people.find().pretty()
{ "_id" : ObjectId("520d293752cfe6ece5d3fd77"), "name" : "Andrew" }
{ "_id" : ObjectId("520e448b77803f8f15fcfedb"), "name" : "Amy" }
>
Run Code Online (Sandbox Code Playgroud)
我错过了什么?(毫无疑问,疯狂的事情)
谢谢
更新:doh!回答如下.我没有意识到这样一个简单的文档不会被美化.嵌套文档对我来说很好.
我有一个从外部系统导入的单个有序字符串数组,形式如下:
val l = List("key1", "val1", "key2", "val2", etc...)
Run Code Online (Sandbox Code Playgroud)
什么是scala方式将其转换为一个地图,我可以迭代键并获得相关的val?
谢谢
我找到了用于测试多个值但不提取多个值的jsonpath示例.
我想image和name从kubectl get pods.
这让我受益匪浅 name
kubectl get pods -o=jsonpath='{.items[*].spec.containers[*].name}' | xargs -n 1
这让我受益匪浅 image
kubectl get pods -o=jsonpath='{.items[*].spec.containers[*].image}' | xargs -n 1
但
kubectl get pods -o=jsonpath='{.items[*].spec.containers[*].[name,image}' | xargs -n 2
抱怨invalid array index image- 是否有获取节点相邻值列表的语法?
我正在尝试将case类转换为jsonspray.io json。下面的代码:
case class Value(amt: Int)
case class Item(name: String, count: Value)
object MyJsonProtocol extends DefaultJsonProtocol {
implicit val itemFormat = jsonFormat2(Item)
}
import MyJsonProtocol._
import spray.json._
val json = Item("mary", Value(2)).toJson
println(json)
Run Code Online (Sandbox Code Playgroud)
给出:
could not find implicit value for evidence parameter of type onextent.bluecase.examples.ex1.ExampleJson2.MyJsonProtocol.JF[Value]
Run Code Online (Sandbox Code Playgroud)
我也尝试JsonProtocol为Value 定义一个值,但得到相同的值。搜索stackoverflow我只看到与相关的错误generics,但不是。
我想念什么?(现在重新阅读有关隐式的信息...)
我试图在一些新的C++中使用一些旧的C库.
该库的头文件使用D. Hanson的"C接口和实现"实现隐藏成语:
#define T MyAST
typedef struct T *T;
Run Code Online (Sandbox Code Playgroud)
接近我可以说,这是用C编译的,因为在C中,struct struct和typedef名称在不同的名称空间中,但extern "C" { #include "MyAST.h" }由于typedef和struct名称在同一名称空间中,所以它不能用C++()编译.
conflicting declaration 'typedef struct MyAST* MyAST'
Run Code Online (Sandbox Code Playgroud)
我想我注定要将struct def移到标题中并放弃使用该技术,但我真的不想(这个成语用在很多代码中,有些是我的,有些不是)并认为我是在这里查看是否有人有任何见解.
PS:如果你不知道这个习惯用法,它允许你将结构定义保存在实现C文件中,然后interface(MyAST.h)的用户无法访问结构,他们必须在实现中使用你的函数.
我在很多系统上使用相同的.vimrc文件.我想绕过vundle安装一些我知道如果'if_lua'不存在就无法工作的模块.
是否有条件做的vim脚本方式
Bundle 'Shougo/neocomplete.vim'
Run Code Online (Sandbox Code Playgroud)
只有当vim用lua编译时才能避免启动错误:
$ vim myprogram.c
neocomplete does not work this version of Vim.
It requires Vim 7.3.885 or above and "if_lua" enabled Vim.
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)
谢谢
当映射还没有条目时,我尝试使用异步调用从数据库延迟填充 HashMap。
Rust 编译器警告异步闭包不稳定,但我应该尝试async {。
我正在尝试遵循该建议,但我在评论中收到expected a FnOnce<()>错误: closure
use std::collections::HashMap;
use tokio::runtime::Runtime;
async fn get_from_store(key: String) -> String {
// pretend to get this from an async sqlx db call
String::from(format!("value-for-{key}"))
}
async fn do_work() {
let mut map: HashMap<String, String> = HashMap::new();
let key = String::from("key1");
// the compiler advised async closures were unstable and...
// to use an async block, remove the `||`: `async {` (rustc E0658)
map.entry(key.clone())
.or_insert_with(async { get_from_store(key) }.await);
// the …Run Code Online (Sandbox Code Playgroud) 如何在运行时在节点中运行的scala.js程序中获取系统环境变量?
在节点I中使用process.env.ENV_VARIABLE和在JVM scala中sys.env.getOrElse(...)
我发现了编译时配置库,但目前还不清楚如何将键和URL等部署时间设置注入预编译的_fastopt.js单个文件部署.