小编joe*_*mct的帖子

clojure.java.jdbc /查询大结果集懒惰

我正在尝试从数据库中读取数百万行并写入文本文件.

这是我的问题数据库转储到带有副作用的文本文件的延续

我现在的问题似乎是在程序完成之前不会发生日志记录.我没有懒惰处理的另一个指标是在程序完成之前根本不写入文本文件.

基于一个IRC尖看来我的问题很可能具有做:result-set-fn,缺省值为doallclojure.java.jdbc/query代码的区域.

我试图用一个for函数替换它,但仍然发现内存消耗很高,因为它将整个结果集拉入内存.

我怎么能有一个:result-set-fn不会把所有东西都拉进来的doall?如何在程序运行时逐步编写日志文件,而不是在-main执行完成后转储所有内容?

    (let [ 
          db-spec              local-postgres
          sql                  "select * from public.f_5500_sf "
          log-report-interval  1000
          fetch-size           100
          field-delim          "\t"                                                                  
          row-delim            "\n"                                                                  
          db-connection        (doto ( j/get-connection db-spec) (.setAutoCommit false)) 
          statement            (j/prepare-statement db-connection sql :fetch-size fetch-size ) 
          joiner               (fn [v] (str (join field-delim v ) row-delim ) )                      
          start                (System/currentTimeMillis)                                            
          rate-calc            (fn [r] (float (/ r (/ ( - (System/currentTimeMillis) start) 100))))  
          row-count …
Run Code Online (Sandbox Code Playgroud)

jdbc clojure

9
推荐指数
1
解决办法
4189
查看次数

clojure app config filles - 吐出pprint s-expression的输出?

我需要为我正在构建的clojure应用程序配置文件.它们应该足够容易让用户在文本编辑器中进行修改,以方便我的程序读取.

我在想序列化的S-表情和使用吐放入到用户的home目录下的配置文件,但我想pprint我吐,所以它看起来有点更友好的人眼数据.

我如何在clojure中吐出pprint的输出?

在使用序列化的s表达式作为clojure中的配置文件时,我的思维过程是否正确?

谢谢,

clojure

7
推荐指数
1
解决办法
921
查看次数

Netezza ODBC连接 - 相当于"使用数据库"

连接到Netezza系统后有没有办法切换数据库?例如,在MSSQL中,可以发送命令use database_name以切换到database_name.

Netezza中有没有像mssql上的"use"一样的东西?

http://technet.microsoft.com/en-us/library/ms188366.aspx

我提出的问题是关于元数据查询; 我只能访问"当前连接的数据库"的_v_table.

netezza

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

mutt - 对拉出的文本进行索引搜索

我想知道是否有基于从“编辑”或“页面”模式中提取的文本的 mutt 索引中的“搜索”或“限制”。

我正在尝试为索引构建一个宏,按下该宏时会将索引限制为仅来自 ( ~f)From: .*$当前项目的正则表达式的邮件。

这将帮助我做的是查看来自特定发件人的所有消息的上下文......当人们不小心“中断线程”时,它也会有所帮助。

我希望它与此处讨论的 vim 类似,我可以从一个区域中提取文本,然后键入^R"以粘贴回“搜索”或“限制”提示符中。

我尝试制作一个宏来进入edit然后搜索 from 字符串,但我不知道如何将其粘贴回索引中的任何内容......

mutt

6
推荐指数
1
解决办法
308
查看次数

展平嵌套的 Python 字典,压缩键,并使用字典重新生成子列表

我一直在使用imran的很好的答案来展平嵌套的 Python 字典,压缩键,并试图想出一种方法来进一步展平可能位于字典项的列表值内的字典。(当然,因为我的数据通常来自 XML,这也可以是递归的......)

from pprint import pprint
from collections import MutableMapping

def flatten(d, parent_key='', sep='_'):
    items = []
    for k, v in d.items():
        new_key = parent_key + sep + k if parent_key else k
        if isinstance(v, MutableMapping):
            items.extend(flatten(v, new_key, sep=sep).items())
        else:
            items.append((new_key, v))
    return dict(items)
Run Code Online (Sandbox Code Playgroud)

给定一个d这样的字典:

d = {"a": 1,
     "b": 2,
     "c": {"sub-a": "one",
           "sub-b": "two",
           "sub-c": "thre"}}
Run Code Online (Sandbox Code Playgroud)

这很好用:

pprint(flatten(d))

        {'a': 1,
         'b': 2,
         'c_sub-a': 'one', …
Run Code Online (Sandbox Code Playgroud)

python dictionary

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

emacs 邪恶中视觉垂直块选择的增量数字

我多年来一直使用https://github.com/vim-scripts/increment.vim--Avadhanula for vim。

我如何在 emacs 中利用类似的功能?

这个想法是这样的:

给出如下列表:

the_array[0] 
the_array[0] 
the_array[0] 
Run Code Online (Sandbox Code Playgroud)

我希望能够选择所有零,发出命令,并将文本替换为:

the_array[0] 
the_array[1] 
the_array[2] 
Run Code Online (Sandbox Code Playgroud)

如果重要的话,我正在使用 emacs 邪恶模式,希望对我想要增加的数字区域执行相当于块选择的操作。

谢谢,

emacs elisp evil-mode

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

clojure java-time - 日期向前移动一年?

我对包装 Java 8 的 java.time api的clojure.java-time库用法的使用感到困惑。

我想要一个将字符串格式的日期从“yyyy-MM-dd'T'HH:mm:ss”格式转换为“MM/dd/YYYY hh:mm:ss a”格式的函数。

这是我的功能:


(require '[java-time :as jt])

(defn change-ds-format [in-ds]
  {:pre [string? in-ds ]}
  (let [input-format "yyyy-MM-dd'T'HH:mm:ss"  
        output-format "MM/dd/YYYY hh:mm:ss a"]
    (->> in-ds
         (jt/local-date-time input-format)
         (jt/format output-format)))) 
Run Code Online (Sandbox Code Playgroud)

这看起来没问题:

(change-ds-format "2019-12-28T00:00:00" )
;=> "12/28/2019 12:00:00 AM"
Run Code Online (Sandbox Code Playgroud)

我不知道为什么要推迟到 2020 年?

(change-ds-format "2019-12-29T00:00:00" )
;=> "12/29/2020 12:00:00 AM"
;; Why is this one 2020 ???
Run Code Online (Sandbox Code Playgroud)

我想这可能是时区偏移问题,但我不相信它应该转移到 2020 年。

clojure java-time

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

Clojure 反射警告 - 无法解决写入调用

我正在努力获得正确的类型提示,以避免在从数据库查询写入文本文件输出时出现反射警告。

我试图在调用每个函数之前放置 ^String 类型提示,因为最终输出将命中磁盘上的文本文件。

反射警告发生在函数末尾的 :row-fn 行上。我Reflection warning, dbdump/dbdump.clj:157:44 - call to write can't be resolved.在同一行有评论。

我怎样才能摆脱这个警告?我认为在处理大型数据集时会产生性能成本。

(defn run-job [job-time-string db-spec config]
  (let [; {{{
        source-sql          (str "select * from " (:source-base-name config)(:table-name config))
        max-rows            (:max-rows            config)
        fetch-size          (:fetch-size          config)
        working-dir         (:working-dir         config)
        output-name           (str working-dir "/" job-time-string ".pipe" )
        field-delim         (:field-delim         config)
        row-delim           (:row-delim           config)
        log-report-interval (:log-report-interval config)
        row-count           (atom 0)  ; For state on rows
        db-connection       (doto (j/get-connection db-spec))
        statement           (j/prepare-statement db-connection source-sql :fetch-size fetch-size :concurrency …
Run Code Online (Sandbox Code Playgroud)

java clojure

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

python toolz - 组合方法(与函数相反)

在toolz项目中,有没有办法像函数一样对待对象方法,这样我就可以更好地进行组合、柯里化等?
我所说的更好是指可读性和类似的性能

这是一个简单的例子:

# given a list strings (names),
l = ["Harry"  ,
    "Sally  "    ,
    " bEn " ,
    " feDDy "  ]

# Lets pretend I want to apply a few simple string methods on each item in the
# list (This is just an example), and maybe replace as it's multi-airity.

# Traditional python list comprehension:
print([x.strip().lower().title().replace('H','T') for x in l ])

['Tarry', 'Sally', 'Ben', 'Feddy']

# my attempt, at toolz, same question with compose, curry,
# …
Run Code Online (Sandbox Code Playgroud)

python toolz

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

core.async 与分区状态传感器不保持状态?

(我之前有一个问题在这里,并假设我不会遇到 core.async 问题)

给定如下输入数据:

(require '[clojure.core.async :as a])

(def input-data
  [{:itm_na 1 :seq_no 1  :doc_img "this is a very long "}
   {:itm_na 1 :seq_no 2  :doc_img "sentence from a mainframe "}
   {:itm_na 1 :seq_no 3  :doc_img "system that was built before i was "}
   {:itm_na 1 :seq_no 4  :doc_img "born."}
   {:itm_na 2 :seq_no 1  :doc_img "this is a another very long "}
   {:itm_na 2 :seq_no 2  :doc_img "sentence from the same mainframe "}
   {:itm_na 3 :seq_no 1 …
Run Code Online (Sandbox Code Playgroud)

clojure core.async

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

标签 统计

clojure ×5

python ×2

core.async ×1

dictionary ×1

elisp ×1

emacs ×1

evil-mode ×1

java ×1

java-time ×1

jdbc ×1

mutt ×1

netezza ×1

toolz ×1