小编ste*_*ino的帖子

如何在键中使用正斜杠设置环境变量

有没有办法在名称中使用斜杠导出环境变量,例如:

export /myapp/db/username=someval

这篇文章表明它应该是可能的,但我无法弄清楚这样做的有效语法.

背景:

我使用confd从模板和密钥库生成配置文件.典型的商店(consul,etcd)使用分层键,例如/myapp/db/username.我希望透明地允许在使用基于环境变量的提供程序和利用分层键的配置存储之间进行切换.

bash shell environment-variables confd

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

Spark SQL的Scala API - TimestampType - 找不到org.apache.spark.sql.types.TimestampType的编码器

我在Databricks笔记本上使用Spark 2.1和Scala 2.11

什么是TimestampType?

我们知道,从SparkSQL的文档那是官方的时间戳类型是TimestampType,这显然是对的java.sql.Timestamp一个别名:

TimestampType可以在SparkSQL的Scala API中找到

使用模式和数据集API时,我们有所不同

从Databricks的Scala Structured Streaming示例解析时{"time":1469501297,"action":"Open"}

使用Json架构 - > OK(我更喜欢使用优雅的Dataset API):

val jsonSchema = new StructType().add("time", TimestampType).add("action", StringType)

val staticInputDF = 
  spark
    .read
    .schema(jsonSchema)
    .json(inputPath)
Run Code Online (Sandbox Code Playgroud)

使用数据集API - > KO:找不到TimestampType的编码器

创建Event类

import org.apache.spark.sql.types._
case class Event(action: String, time: TimestampType)
--> defined class Event
Run Code Online (Sandbox Code Playgroud)

在databricks上从DBFS读取事件时出错.

注意:java.sql.Timestamp作为"时间"类型使用时,我们不会收到错误

val path = "/databricks-datasets/structured-streaming/events/"
val events = spark.read.json(path).as[Event]
Run Code Online (Sandbox Code Playgroud)

错误信息

java.lang.UnsupportedOperationException: No Encoder found for org.apache.spark.sql.types.TimestampType
- field (class: "org.apache.spark.sql.types.TimestampType", name: "time")
- …
Run Code Online (Sandbox Code Playgroud)

timestamp scala apache-spark apache-spark-sql apache-spark-dataset

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

在文本文件中写入/存储数据帧

我试图写dataframetext文件。如果文件包含单列,那么我可以在文本文件中写入。如果文件包含多列,那么我将面临一些错误

文本数据源仅支持单列,您有 2 列。

object replace {

  def main(args:Array[String]): Unit = {

    Logger.getLogger("org").setLevel(Level.ERROR)

    val spark = SparkSession.builder.master("local[1]").appName("Decimal Field Validation").getOrCreate()

    var sourcefile = spark.read.option("header","true").text("C:/Users/phadpa01/Desktop/inputfiles/decimalvalues.txt")

     val rowRDD = sourcefile.rdd.zipWithIndex().map(indexedRow => Row.fromSeq((indexedRow._2.toLong+1) +: indexedRow._1.toSeq)) //adding prgrefnbr               
                         //add column for prgrefnbr in schema
     val newstructure = StructType(Array(StructField("PRGREFNBR",LongType)).++(sourcefile.schema.fields))

     //create new dataframe containing prgrefnbr

     sourcefile = spark.createDataFrame(rowRDD, newstructure)
     val op= sourcefile.write.mode("overwrite").format("text").save("C:/Users/phadpa01/Desktop/op")

  }

}
Run Code Online (Sandbox Code Playgroud)

scala apache-spark

5
推荐指数
2
解决办法
6万
查看次数

将root渲染为null(在DOMless范围内呈现)

我想在根处渲染null,因此我可以拥有一个呈现null的完整树,但只是利用React的组件(+它的生命周期方法)结构.

这里有一些关于"返回null概念"的信息:https://github.com/joshwcomeau/return-null - 来自react conf的照明讲话.

我正在制作电子应用程序.在主要范围内,没有dom.在这个主范围(index.js)中我有我的redux存储,我在整个树中返回null,包括root.但是我最初无法渲染它,因为对于初始渲染我需要像这样使用ReactDOM.render:

ReactDOM.render(<AllNullStuff />, document.getElementById('something'))
Run Code Online (Sandbox Code Playgroud)

我没有DOM,反正有渲染吗?

如果我null以root身份尝试,我会收到错误:

错误:_registerComponent(...):目标容器不是DOM元素.

有没有办法渲染完整的null树,所以不需要DOM?

javascript reactjs

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

Scala 2.12.4:无法再从另一个包访问受保护的静态Java方法

我有带有受保护静态方法的java类:

package parent;

public class Parent {

    protected static void parentMethod() {
        System.out.println("I'm in parent static method");
    }

}
Run Code Online (Sandbox Code Playgroud)

在Scala 2.12.4(2.12.3)之前,我可以从另一个包中调用此方法,如下所示:

package child

import parent.Parent

class Child extends Parent {

  def childMethod = {
    println("I'm in child method and calling parentMethod")
    Parent.parentMethod()
  }

}
Run Code Online (Sandbox Code Playgroud)

但Scala 2.12.4不编译此代码.我收到错误:

错误:(9,12)在对象父类的方法parentMethod不能在对象parent.Parent访问访问到受保护的方法parentMethod不允许的,因为前缀类型parent.Parent.type不符合在包孩子在那里访问发生家长反对孩子.parentMethod()

这种访问模式对我来说非常重要,因为JOOQ代码生成使用它.

发生了什么?

scala

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

Tensorflow错误:不允许使用`tf.Tensor`作为Python`bool`

我正在努力在Python中的TensorFlow中实现激活功能.

代码如下:

def myfunc(x):
    if (x > 0):
        return 1
    return 0
Run Code Online (Sandbox Code Playgroud)

但我总是得到错误:

不允许使用tf.TensorPython作为Python bool.使用if t is not None:

machine-learning deep-learning keras tensorflow activation-function

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

动态构建Spark SQL查询

我们如何使用Scala中的Spark动态地将列名和操作符名称传递给SQL查询?

我试过(不成功)以下内容:

spark.sql("set key_tbl=mytable")
spark.sql("select count(1) from ${key_tbl}").collect()
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql

5
推荐指数
2
解决办法
3802
查看次数

Dotty 提供什么来替换字体投影?

我一直在阅读有关 Dotty 的文章,因为它看起来即将成为 Scala 3,并注意到类型投影被认为是“不健全的”并从语言中删除......

这似乎很糟糕,因为我已经看到了几个非常有用的用例。例如:

trait Contents
class Foo extends Contents
class Bar extends Contents

trait Container[T <: Contents] { type ContentType = T }
class FooContainer extends Container[Foo]
class BarContainer extends Container[Bar]

trait Manager[T <: Container[_]] { 
  type ContainerType = T 
  type ContentType = T#ContentType
  def getContents: ContentType 
  def createContainer(contents: ContentType): ContainerType
}
Run Code Online (Sandbox Code Playgroud)

如何在 Dotty 中做这样的事情?将第二个类型参数添加到Manager? 但是,除了创建和操作 的实例变得非常乏味这一事实之外Manager,它也不太有效,因为没有办法强制执行这两种类型之间的关系(Manager[FooContainer, Bar]不应该是合法的)。

然后,还有其他用途,如类型 lambdas 和部分应用类型,可用于创建有偏差的函子等……或者这些(部分应用类型)是否成为 Dotty 中的“一等公民”?

编辑

为了回答评论中的问题,这里有一个有点人为的例子,可以使用他的 this 。让我们假设,我Managers实际上是 Akka Actors …

scala dotty type-projection scala-3

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

Spark数据集相当于scala的"collect",它具有部分功能

常规scala集合有一个漂亮的collect方法,它允许我filter-map使用部分函数在一个传递中执行操作.火花上有相同的操作Dataset吗?

我想它有两个原因:

  • 句法简洁
  • 它将filter-map样式操作减少到一次通过(尽管在火花中我猜测有优化可以为你发现这些东西)

这是一个显示我的意思的例子.假设我有一系列选项,我想提取并加倍定义的整数(a中的那些Some):

val input = Seq(Some(3), None, Some(-1), None, Some(4), Some(5)) 
Run Code Online (Sandbox Code Playgroud)

方法1 - collect

input.collect {
  case Some(value) => value * 2
} 
// List(6, -2, 8, 10)
Run Code Online (Sandbox Code Playgroud)

collect使得这个语法非常简洁,并且一次通过.

方法2 - filter-map

input.filter(_.isDefined).map(_.get * 2)
Run Code Online (Sandbox Code Playgroud)

我可以将这种模式带到火花上,因为数据集和数据框有类似的方法.

但是,我不喜欢这个这么多,因为isDefinedget看起来像代码异味给我.有一个隐含的假设,即地图只接收Somes.编译器无法验证这一点.在一个更大的例子中,开发人员更难发现这种假设,开发人员可能会交换过滤器并映射,例如,不会出现语法错误.

方法3 - fold*操作

input.foldRight[List[Int]](Nil) {
  case (nextOpt, acc) => nextOpt match {
    case Some(next) => next*2 :: acc
    case None => …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-dataset

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

C上的联盟数组

我已经宣布了这一系列的工会:

union Function {
    char* name;
    double (*fnct)();
    int args;
};

union Function functions[] = {
    {.name = "acos", .fnct = acos, .args = 1},
    {.name = "asin", .fnct = asin, .args = 1},
    {.name = "atan", .fnct = atan, .args = 1},
};
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用它时,我得到一个Segmentation fault错误.

for(int i = 0; i < sizeof(functions) / sizeof(union Function); i++) {
    printf("%d\n", functions[i].args);
    printf("%s\n", functions[i].name); //HERE!
}
Run Code Online (Sandbox Code Playgroud)

c arrays unions

3
推荐指数
1
解决办法
2774
查看次数