小编Mal*_*lte的帖子

如何在Spark窗口函数中使用降序的orderby()?

我需要一个窗口函数,它按一些键(=列名称)进行分区,按另一个列名称进行排序,并返回前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行时,我收到语法错误.这里的语法是什么?

scala apache-spark apache-spark-sql spark-dataframe

19
推荐指数
2
解决办法
4万
查看次数

如何在keras flow_from_directory中手动指定类标签?

问题:我正在训练多标签图像识别模型.因此,我的图像与多个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

17
推荐指数
2
解决办法
7583
查看次数

使用 devtools 为 R 包创建主要帮助页面(索引)

我正在使用 devtools 构建 R 包。所有文档都是使用 roxygen2 构建的。对于这些功能来说,这一切都很好,但是我如何为整个包提供一个帮助页面,其中列出了所有可用的功能。

在其他软件包中,每个帮助页面的底部始终有一个指向索引页面的链接:

dplyr 包的屏幕截图(示例索引链接)

如何使用 devtools 构建/链接此索引页面?

编辑:如果我通过“?functionName”访问帮助页面,还会将以下输出打印到控制台“使用 functionName 的开发文档”。从 devtools 的 github 存储库中,我找到了 提供此输出的函数 dev-help.R 。在其评论中指出,链接不适用于此开发帮助。

请注意,这仅呈现单个文档文件,因此到包内其他文件的链接将不起作用。

那么如何使用普通文档而不是 dev-help 呢?

r devtools package roxygen2

5
推荐指数
1
解决办法
2151
查看次数

如何从hdfs上的文件加载typesafe configFactory?

我正在使用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,但这对于这么简单的任务来说非常麻烦.

java hadoop scala typesafe-config

2
推荐指数
1
解决办法
2065
查看次数