Редактировать:
Данные действительно выглядят так.
1,000-00-000, GRABBUS, OCTOPUS ,, M, 26-Nev-12,, 05 FRENCH TOAST ROAD ,, VACANT, ZA, 1867, (001) 111-1011, (002) 111-1000 ,,
Я должен выглядеть глупо, потому что он содержит конфиденциальную информацию.
Вот как это выглядит перед использованием clojure-csv для создания вектора векторов.
Я использовал числа после разбора, чтобы упростить его, но они не уменьшаются до значения.Я хочу выбрать некоторые столбцы из проанализированных данных clojure-csv и создать строку csv меньшего размера.
Пожалуйста, примите мои извинения за любую путаницу.
Конец редактирования:
Как вы определяете, когда следует использовать сокращение или вместо этого использовать pmap?
Некоторое время назад я получил комментарий в своем блоге по поводу снижения.В частности, в комментарии говорится, что сокращение в общем случае не может быть распараллелено, но карта (pmap) может быть такой.
Когда использование или не использование уменьшения будет иметь значение, и для примеров, подобных приведенному ниже, это имеет значение?
Спасибо.
(def csv-row [1 2 3 4 5 6 7 8 9])
(def col-nums [0 1 4])
(defn reduce-csv-rowX
"Accepts a csv-row and a list of columns to extract, and
reduces the csv-row to the selected list using a list comprehension."
[csv-row col-nums]
(for [col-num col-nums
:let [part-row (nth csv-row col-num nil)]]
part-row))
(defn reduce-csv-row
"Accepts a csv-row and a list of columns to extract, and
reduces the csv-row to the selected list."
[csv-row col-nums]
(reduce
(fn [out-csv-row col-num]
(let [out-val (nth csv-row col-num nil)]
(if-not (nil? out-val)
(conj out-csv-row out-val))))
[]
col-nums))
Редактировать:
(defn redu-csv-row "Принимает csv-строку и список столбцов для извлечения, а также уменьшаетcsv-row в выбранный список. "[csv-row col-nums] (уменьшите (fn [out-csv-row col-num] (let [out-val (n-й csv-row col-num nil)] (конout-csv-row out-val))) [] col-nums))