小编Let*_*zee的帖子

试图在Spark DataFrame上使用map

我最近开始尝试使用Spark和Java.我最初WordCount使用着名的例子RDD,一切都按预期进行.现在我试图实现我自己的例子,但使用DataFrames而不是RDD.

所以我正在从一个文件中读取数据集

DataFrame df = sqlContext.read()
        .format("com.databricks.spark.csv")
        .option("inferSchema", "true")
        .option("delimiter", ";")
        .option("header", "true")
        .load(inputFilePath);
Run Code Online (Sandbox Code Playgroud)

然后我尝试选择一个特定的列并对每一行应用一个简单的转换

df = df.select("start")
        .map(text -> text + "asd");
Run Code Online (Sandbox Code Playgroud)

但是编译发现了第二行的问题,我并不完全理解(起始列是按类型推断的string).

在scala.Function1接口中找到多个非重写抽象方法

为什么我的lambda函数被视为Scala函数,错误消息实际上是什么意思?

java java-8 apache-spark apache-spark-sql spark-dataframe

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

Django过滤器 - url过滤器参数中的硬编码时区

我使用django过滤器后端和Django休息来构建一个休息api.在某些端点,用户可以按日期时间过滤请求,以便进行此操作

/api/api_endpoint_x/?time_start=2015-11-20 11:22:15.160983
Run Code Online (Sandbox Code Playgroud)

会形成一个有效的请求.使用Django对USE_TZ=True所有传入日期时间请求的时区支持被视为在最终用户的本地时间.例如,如果该请求来自柏林,则2015-11-20 10:22:15.160983由于柏林时间为GMT + 1,因此将进行过滤.有没有办法在请求中对时区进行硬编码,以便过滤机制能够使用明确指定的时区?

我知道我可以手动检查查询参数并理解它们然后执行过滤,但我正在研究这个功能已经在里面实现的可能性django-filter.

例如,我可以使用类似的东西

/api/api_endpoint_x/?time_start=2015-11-20 11:22:15.160983+00:00
Run Code Online (Sandbox Code Playgroud)

django django-filter django-timezone

5
推荐指数
0
解决办法
209
查看次数

如何从Ubuntu连接到Windows SQL Server

在过去的两天里,我一直在尝试连接到远程Windows SQL服务器,但没有取得明显的成功.我正在尝试使用pyodbc包连接python .

我已经尝试过关注那些没有太多运气的所有博客文章.我第一次跟随那个我认为努力但最终过于语无伦次的IMO.

unixODBC按照博文中的建议安装了经理.我已从Windows下载了可用的redhat软件包并运行安装脚本,但每次我尝试连接到db时都会得到

pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'SQL Server Native Client 10.0' : file not found (0) (SQLDriverConnect)")
Run Code Online (Sandbox Code Playgroud)

有没有办法在几个小时内实现这一点,而无需自己调整窗口的安装脚本?有人可以概述需要采取的步骤和需要安装的模块,以便某人能够从Linux机器连接到Windows SQL Server吗?

我目前正在使用Ubuntu 15.04.

更新

我也试过这里给出的指示.查看azure平台中SQL db的详细信息,明确指出驱动程序应该是SQL Server Native Client 10.0.我应该考虑强制使用该驱动程序,还是可以使用第二篇博客文章中建议的FreeTDS?

python ubuntu unixodbc azure pyodbc

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

在熊猫列上应用条件以创建布尔值索引数组

我想从熊猫数据框中删除特定的行。通常,您可以使用类似的方法

df[df['some_column'] != 1234]
Run Code Online (Sandbox Code Playgroud)

什么df['some_column'] != 1234是创建索引新df的索引数组,因此仅显示具有值的行True

但是在某些情况下(例如我的情况),我看不到如何以这种方式表达条件,并且遍历大熊猫行太慢而不能被认为是可行的选择。

更具体地说,我想删除所有行,其中列的值也是字典中的键,这与上面的示例类似。

在一个完美的世界里,我会考虑类似

df[df['some_column'] not in my_dict.keys()]
Run Code Online (Sandbox Code Playgroud)

这显然是行不通的。有什么建议么?

python pandas

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

filebeat @timestamp 未被覆盖

我用来filebeat将日志写入elasticsearch服务器。我的日志是json格式的。每行都是一个 json 字符串,如下所示

{"@timestamp": "2017-04-11T07:52:480,230", "user_id": "1", "delay": 12}
Run Code Online (Sandbox Code Playgroud)

我希望@timestamp日志中的字段替换@timestampfilebeat 在读取日志时创建的字段。在我的 kibana 仪表板上我总是得到

json_error:@timestamp 未覆盖(2017-04-11T07:52:48,230 解析错误)

最后看到@timestampfilebeat 创建的字段

我的 filebeat conf 包含有关覆盖字段的那些行

json.keys_under_root: true
json.overwrite_keys: true
json.add_error_key: true
Run Code Online (Sandbox Code Playgroud)

另外,从我的log4jconf中@timestamp,我的日志中创建的字段是ISO8601格式化的。知道问题是什么以及为什么该@timestamp字段没有被覆盖吗?

json elasticsearch logstash kibana filebeat

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

在__init__之外初始化实例变量时会发生什么

在python中初始化一个实例变量(例如self.my_var)时,你应该在你的类__init__函数中执行它,以便为每个实例的这个变量正确保留内存(< - 我的错误,见下文).如果要定义类级变量,可以在函数外部进行,而不使用self前缀.

当你比实例化一个函数内部变量等,会发生什么__init__self前缀?它的行为就像一个普通的实例变量,有没有令人信服的理由不这样做?除了隐藏代码逻辑的危险之外,这已经足够了,但是我想知道如果你这样做,你可能会在内存或其他隐藏的问题上运行吗?

我无法找到在某处讨论的内容.

更新 抱歉

我误解了一些答案,包括第一个和第三个Python __init__和self他们做了什么?(寻找其他人)并认为这__init__是一种特殊类型的功能,认为它以某种方式具有内存分配功能(!?).错误的问题.

python software-design

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

什么相当于postresql中的CREATE VIEW IF NOT EXISTS

我想做点什么

CREATE VIEW IF NOT EXISTS complete_user_profile ...
Run Code Online (Sandbox Code Playgroud)

不知道怎么样

database postgresql

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

如何在不浪费太多cpu周期的情况下等待多线程队列不为空

我想让一个线程等到多线程队列不为空。队列只有一个生产者和一个消费者。生产者在任务可用时将任务放入队列,但生产者必须等到收集到两个或更多任务。我不只是使用该get方法两次来检索两个任务的原因是因为它使算法流程过于复杂。但是,这不能在下面的代码段中描述,因为显然这只是一个过于简单的例子。

我需要知道队列不是空的,以便我可以将队列的峰值(不删除它)与我刚刚删除的元素进行比较 get

如何通过睡眠来完成:

while myQueue.empty():
    sleep(0.05)
Run Code Online (Sandbox Code Playgroud)

如何在不使用睡眠的情况下做到这一点?我应该使用event.wait()吗?如果是,我无法弄清楚应该如何正确使用该event.clear()命令。由于我想要等待的线程也是消费者,我无法确定队列是否为空。即使我queue.empty()用来检查。

python python-multithreading

4
推荐指数
1
解决办法
4826
查看次数

docker-compose -p &lt;name&gt; up 后 docker-compose 停止工作

我正在使用 docker-compose 版本 2。我正在启动容器docker-compose -p some_name up -d并尝试使用docker-compose stop. 命令与0代码一起退出,但容器仍在运行。

这是版本的预期行为吗?如果是,知道如何解决它吗?

我的docker-compose.yml文件看起来像这样

version: '2'
services:

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0
    ports:
      - "9200:9200"
    environment:
      ES_JAVA_OPTS: "-Xmx512m -Xms512m"
      xpack.security.enabled: "false"
      xpack.monitoring.enabled: "false"
      xpack.graph.enabled: "false"
      xpack.watcher.enabled: "false"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 262144
        hard: 262144

  kafka-server:
    image: spotify/kafka
    environment:
      - TOPICS=my-topic
    ports:
     - "9092:9092"

  test:
    build: .
    depends_on:
      - elasticsearch
      - kafka-server
Run Code Online (Sandbox Code Playgroud)

更新

我发现问题是由使用-p参数并为容器提供显式前缀引起的。仍在寻找解决它的最佳方法。

docker docker-compose

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

无法从alpine linux容器中运行jfrog可执行文件

我使用的alpine linux容器,特别python:3.4-alpineopenjdk:8-jdk-alpine.当我尝试执行我放在可执行文件中的任何脚本或可执行文件时,我收到Not Found错误.

例如.在python:3.4-alpine我想要安装的容器中,jfrog我按照这里的命令(在我curl通过apk 安装后).此命令下载shell脚本并将其管道到sh,下载并创建jfrog具有正确权限的可执行文件.当我试图运行这个可执行文件时,我得到了

bin/sh:./ jfrog:找不到

更新

我发现root用户bin/ash默认使用,我不知道它是什么.所以我bin/sh jfrog手动调用了,我得到了

/ #bin/sh jfrog jfrog:第1行:ELF:找不到jfrog:第1行:语法错误:未终止的引用字符串

知道我做错了什么吗?我怀疑它只与容器中存在的root用户有关.

docker alpine-linux jfrog-mission-control

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