我需要一个窗口函数,它按一些键(=列名称)进行分区,按另一个列名称进行排序,并返回前x行的行.
这适用于升序:
def getTopX(df: DataFrame, top_x: String, top_key: String, top_value:String): DataFrame ={
val top_keys: List[String] = top_key.split(", ").map(_.trim).toList
val w = Window.partitionBy(top_keys(1),top_keys.drop(1):_*)
.orderBy(top_value)
val rankCondition = "rn < "+top_x.toString
val dfTop = df.withColumn("rn",row_number().over(w))
.where(rankCondition).drop("rn")
return dfTop
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将其更改为第4行orderBy(desc(top_value))或orderBy(top_value.desc)第4行时,我收到语法错误.这里的语法是什么?
问题:我正在训练多标签图像识别模型.因此,我的图像与多个y标签相关联.这与ImageDataGenerator的方便的keras方法"flow_from_directory"相冲突,其中每个图像应该位于相应标签的文件夹中(https://keras.io/preprocessing/image/).
解决方法:目前,我正在将所有图像读入一个numpy数组并从那里使用"flow"函数.但这会导致大量内存负载和缓慢的读入过程.
问题:有没有办法使用"flow_from_directory"方法并手动提供(多个)类标签?
更新:我最终扩展了多标签案例的DirectoryIterator类.您现在可以将属性"class_mode"设置为值"multilabel",并提供字典"multlabel_classes",它将文件名映射到其标签.代码:https://github.com/tholor/keras/commit/29ceafca3c4792cb480829c5768510e4bdb489c5
python image-processing multilabel-classification deep-learning keras
我正在使用 devtools 构建 R 包。所有文档都是使用 roxygen2 构建的。对于这些功能来说,这一切都很好,但是我如何为整个包提供一个帮助页面,其中列出了所有可用的功能。
在其他软件包中,每个帮助页面的底部始终有一个指向索引页面的链接:
如何使用 devtools 构建/链接此索引页面?
编辑:如果我通过“?functionName”访问帮助页面,还会将以下输出打印到控制台“使用 functionName 的开发文档”。从 devtools 的 github 存储库中,我找到了 提供此输出的函数 dev-help.R 。在其评论中指出,链接不适用于此开发帮助。
请注意,这仅呈现单个文档文件,因此到包内其他文件的链接将不起作用。
那么如何使用普通文档而不是 dev-help 呢?
我正在使用typesafe ConfigFactory将配置加载到我的scala应用程序中.我不想将配置文件包含在我的jar中,而是从外部hdfs文件系统加载它们.但是,我找不到从hadoop获取的fsDataInputStream对象加载配置的简单方法:
//get HDFS file
val hadoopConfig: Configuration = sc.hadoopConfiguration
val fs: FileSystem = org.apache.hadoop.fs.FileSystem.get(hadoopConfig)
val file: FSDataInputStream = fs.open(new Path("hdfs://SOME_URL/application.conf"))
//read config from hdfs
val config: Config = ConfigFactory.load(file.readUTF())
Run Code Online (Sandbox Code Playgroud)
但是,这会抛出EOFException.有没有一种简单的方法将FSDataInputStream对象转换为所需的java.io.File?我发现从FSDataInputStream转换到FileInputStream,但这对于这么简单的任务来说非常麻烦.