FAQ
Hello everyone,

Just learning Cascalog/Clojure, and a total newbie....I can't seem to find
the right neural circuit in my brain to figure out what I'm doing wrong
below. When I hardcode in the parameters to my q1 function call,
everything seems to work fine. But when I try to use the parameters passed
in via the args, I'm getting a variety of java.lang.ClassCastException
exceptions. I believe it has something to do with my operator comparisons,
but am not sure on how/what to do to fix it. Any advice or additional
constructive pointers would be appreciated....

; hadoop jar ./target/myproj.jar /in/m.csv /output 2039 20120501 20120828
(ns myproj.core
   (:use [cascalog.api]
         [cascalog.more-taps :only (hfs-delimited)]
         [clojure.tools.cli :only (cli)])
   (:require [clojure.string :as s]
             [cascalog [ops :as c] [vars :as v]])
   (:gen-class :main true))

(def errors (hfs-textline "/traps/bad-records" :sinkmode :replace))

(defn q1 [src provider-id begin-date end-date]
   (<- [?guid-id ?hh-id ?individual-id ?provider-id ?last-seen-day]
       ((select-fields src ["?guid-id" "?hh-id" "?individual-id"
"?provider-id" "?last-seen-day"]) ?guid-id ?hh-id ?individual-id
?provider-id ?last-seen-day)
       (>= ?last-seen-day begin-date)
       (<= ?last-seen-day end-date)
       (- ?hh-id ?individual-id :> ?delta)
       (== ?delta ?hh-id)
       (== ?provider-id provider-id)
       (:trap errors)))

(defn -main [in out provider-id begin-date end-date & args]

  (with-job-conf {"mapred.child.java.opts" "-Xmx512"}
  (let [mct (hfs-delimited in :delimiter "\t"
             :outfields ["?guid-id" "?event-day-id" "?hh-id"
"?individual-id" "?provider-id" "?last-seen-day" "?ip-address"
"?match-date" "?match-type" "?rank"]
             :classes [String String Integer Integer Integer Integer String
String String String]
             :skip-header? false)]
  (?- (hfs-delimited out :sinkmode :replace)
      (q1 mct 2039 20120701 20120721)

     ))))

The above appears to work, but when I try to use the parameters from the
args being passed in like:

....
(q1 mct provider-id begin-date end-date)


I get a stack trace like this below:
....
....
         at
cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:99)
         at
cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:39)
         at
cascading.flow.stream.FilterEachStage.receive(FilterEachStage.java:73)
         at
cascading.flow.stream.FilterEachStage.receive(FilterEachStage.java:34)
         at
cascading.flow.stream.FunctionEachStage$1.collect(FunctionEachStage.java:80)
         at
cascading.tuple.TupleEntryCollector.safeCollect(TupleEntryCollector.java:93)
         at
cascading.tuple.TupleEntryCollector.add(TupleEntryCollector.java:86)
         at cascading.operation.Identity.operate(Identity.java:113)
         at
cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:99)
         at
cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:39)
         at
cascading.flow.stream.FunctionEachStage$1.collect(FunctionEachStage.java:80)
         at
cascading.tuple.TupleEntryCollector.safeCollect(TupleEntryCollector.java:93)
         at
cascading.tuple.TupleEntryCollector.add(TupleEntryCollector.java:86)
         at cascading.operation.Identity.operate(Identity.java:113)
         at
cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:99)
         at
cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:39)
         at cascading.flow.stream.SourceStage.map(SourceStage.java:102)
         at cascading.flow.stream.SourceStage.run(SourceStage.java:58)
         at cascading.flow.hadoop.FlowMapper.run(FlowMapper.java:127)
         at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436)
         at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
         at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.Subject.doAs(Subject.java:396)
         at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149)
         at org.apache.hadoop.mapred.Child.main(Child.java:249)
Caused by: java.lang.RuntimeException: java.lang.ClassCastException:
java.lang.String cannot be cast to java.lang.Number
         at
cascalog.ClojureCascadingBase.applyFunction(ClojureCascadingBase.java:71)
         at cascalog.ClojureFilter.isRemove(ClojureFilter.java:33)
         at
cascading.flow.stream.FilterEachStage.receive(FilterEachStage.java:70)
         ... 31 more

--
You received this message because you are subscribed to the Google Groups "cascalog-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cascalog-user+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Search Discussions

  • Sam Ritchie at Aug 29, 2013 at 5:08 am
    Yeah, all args are going to come in as strings (as with any Clojure
    program). You'll need to parse with with (Long/parseLong l), etc.
    Dan Young August 28, 2013 9:43 PM
    Hello everyone,

    Just learning Cascalog/Clojure, and a total newbie....I can't seem to
    find the right neural circuit in my brain to figure out what I'm doing
    wrong below. When I hardcode in the parameters to my q1 function
    call, everything seems to work fine. But when I try to use the
    parameters passed in via the args, I'm getting a variety of
    java.lang.ClassCastException exceptions. I believe it has something
    to do with my operator comparisons, but am not sure on how/what to do
    to fix it. Any advice or additional constructive pointers would be
    appreciated....

    ; hadoop jar ./target/myproj.jar /in/m.csv /output 2039 20120501 20120828
    (ns myproj.core
    (:use [cascalog.api]
    [cascalog.more-taps :only (hfs-delimited)]
    [clojure.tools.cli :only (cli)])
    (:require [clojure.string :as s]
    [cascalog [ops :as c] [vars :as v]])
    (:gen-class :main true))

    (def errors (hfs-textline "/traps/bad-records" :sinkmode :replace))

    (defn q1 [src provider-id begin-date end-date]
    (<- [?guid-id ?hh-id ?individual-id ?provider-id ?last-seen-day]
    ((select-fields src ["?guid-id" "?hh-id" "?individual-id"
    "?provider-id" "?last-seen-day"]) ?guid-id ?hh-id ?individual-id
    ?provider-id ?last-seen-day)
    (>= ?last-seen-day begin-date)
    (<= ?last-seen-day end-date)
    (- ?hh-id ?individual-id :> ?delta)
    (== ?delta ?hh-id)
    (== ?provider-id provider-id)
    (:trap errors)))

    (defn -main [in out provider-id begin-date end-date & args]

    (with-job-conf {"mapred.child.java.opts" "-Xmx512"}
    (let [mct (hfs-delimited in :delimiter "\t"
    :outfields ["?guid-id" "?event-day-id" "?hh-id"
    "?individual-id" "?provider-id" "?last-seen-day" "?ip-address"
    "?match-date" "?match-type" "?rank"]
    :classes [String String Integer Integer Integer Integer
    String String String String]
    :skip-header? false)]
    (?- (hfs-delimited out :sinkmode :replace)
    (q1 mct 2039 20120701 20120721)

    ))))

    The above appears to work, but when I try to use the parameters from
    the args being passed in like:

    ....
    (q1 mct provider-id begin-date end-date)


    I get a stack trace like this below:
    ....
    ....
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:99)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:39)
    at
    cascading.flow.stream.FilterEachStage.receive(FilterEachStage.java:73)
    at
    cascading.flow.stream.FilterEachStage.receive(FilterEachStage.java:34)
    at
    cascading.flow.stream.FunctionEachStage$1.collect(FunctionEachStage.java:80)
    at
    cascading.tuple.TupleEntryCollector.safeCollect(TupleEntryCollector.java:93)
    at
    cascading.tuple.TupleEntryCollector.add(TupleEntryCollector.java:86)
    at cascading.operation.Identity.operate(Identity.java:113)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:99)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:39)
    at
    cascading.flow.stream.FunctionEachStage$1.collect(FunctionEachStage.java:80)
    at
    cascading.tuple.TupleEntryCollector.safeCollect(TupleEntryCollector.java:93)
    at
    cascading.tuple.TupleEntryCollector.add(TupleEntryCollector.java:86)
    at cascading.operation.Identity.operate(Identity.java:113)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:99)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:39)
    at cascading.flow.stream.SourceStage.map(SourceStage.java:102)
    at cascading.flow.stream.SourceStage.run(SourceStage.java:58)
    at cascading.flow.hadoop.FlowMapper.run(FlowMapper.java:127)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at
    org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149)
    at org.apache.hadoop.mapred.Child.main(Child.java:249)
    Caused by: java.lang.RuntimeException: java.lang.ClassCastException:
    java.lang.String cannot be cast to java.lang.Number
    at
    cascalog.ClojureCascadingBase.applyFunction(ClojureCascadingBase.java:71)
    at cascalog.ClojureFilter.isRemove(ClojureFilter.java:33)
    at
    cascading.flow.stream.FilterEachStage.receive(FilterEachStage.java:70)
    ... 31 more

    --
    You received this message because you are subscribed to the Google
    Groups "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send
    an email to cascalog-user+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
    --
    Sam Ritchie, Twitter Inc
    703.662.1337
    @sritchie

    --
    You received this message because you are subscribed to the Google Groups "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to cascalog-user+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
  • Dan young at Aug 29, 2013 at 12:00 pm
    Thanx Sam,

    I'll dig into that today.

    Regards,

    Dano

    On Wed, Aug 28, 2013 at 11:08 PM, Sam Ritchie wrote:

    Yeah, all args are going to come in as strings (as with any Clojure
    program). You'll need to parse with with (Long/parseLong l), etc.

    Dan Young <danoyoung@gmail.com>
    August 28, 2013 9:43 PM
    Hello everyone,

    Just learning Cascalog/Clojure, and a total newbie....I can't seem to find
    the right neural circuit in my brain to figure out what I'm doing wrong
    below. When I hardcode in the parameters to my q1 function call,
    everything seems to work fine. But when I try to use the parameters passed
    in via the args, I'm getting a variety of java.lang.ClassCastException
    exceptions. I believe it has something to do with my operator comparisons,
    but am not sure on how/what to do to fix it. Any advice or additional
    constructive pointers would be appreciated....

    ; hadoop jar ./target/myproj.jar /in/m.csv /output 2039 20120501 20120828
    (ns myproj.core
    (:use [cascalog.api]
    [cascalog.more-taps :only (hfs-delimited)]
    [clojure.tools.cli :only (cli)])
    (:require [clojure.string :as s]
    [cascalog [ops :as c] [vars :as v]])
    (:gen-class :main true))

    (def errors (hfs-textline "/traps/bad-records" :sinkmode :replace))

    (defn q1 [src provider-id begin-date end-date]
    (<- [?guid-id ?hh-id ?individual-id ?provider-id ?last-seen-day]
    ((select-fields src ["?guid-id" "?hh-id" "?individual-id"
    "?provider-id" "?last-seen-day"]) ?guid-id ?hh-id ?individual-id
    ?provider-id ?last-seen-day)
    (>= ?last-seen-day begin-date)
    (<= ?last-seen-day end-date)
    (- ?hh-id ?individual-id :> ?delta)
    (== ?delta ?hh-id)
    (== ?provider-id provider-id)
    (:trap errors)))

    (defn -main [in out provider-id begin-date end-date & args]

    (with-job-conf {"mapred.child.java.opts" "-Xmx512"}
    (let [mct (hfs-delimited in :delimiter "\t"
    :outfields ["?guid-id" "?event-day-id" "?hh-id"
    "?individual-id" "?provider-id" "?last-seen-day" "?ip-address"
    "?match-date" "?match-type" "?rank"]
    :classes [String String Integer Integer Integer Integer String
    String String String]
    :skip-header? false)]
    (?- (hfs-delimited out :sinkmode :replace)
    (q1 mct 2039 20120701 20120721)

    ))))

    The above appears to work, but when I try to use the parameters from the
    args being passed in like:

    ....
    (q1 mct provider-id begin-date end-date)


    I get a stack trace like this below:
    ....
    ....
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:99)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:39)
    at
    cascading.flow.stream.FilterEachStage.receive(FilterEachStage.java:73)
    at
    cascading.flow.stream.FilterEachStage.receive(FilterEachStage.java:34)
    at
    cascading.flow.stream.FunctionEachStage$1.collect(FunctionEachStage.java:80)
    at
    cascading.tuple.TupleEntryCollector.safeCollect(TupleEntryCollector.java:93)
    at
    cascading.tuple.TupleEntryCollector.add(TupleEntryCollector.java:86)
    at cascading.operation.Identity.operate(Identity.java:113)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:99)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:39)
    at
    cascading.flow.stream.FunctionEachStage$1.collect(FunctionEachStage.java:80)
    at
    cascading.tuple.TupleEntryCollector.safeCollect(TupleEntryCollector.java:93)
    at
    cascading.tuple.TupleEntryCollector.add(TupleEntryCollector.java:86)
    at cascading.operation.Identity.operate(Identity.java:113)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:99)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:39)
    at cascading.flow.stream.SourceStage.map(SourceStage.java:102)
    at cascading.flow.stream.SourceStage.run(SourceStage.java:58)
    at cascading.flow.hadoop.FlowMapper.run(FlowMapper.java:127)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at
    org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149)
    at org.apache.hadoop.mapred.Child.main(Child.java:249)
    Caused by: java.lang.RuntimeException: java.lang.ClassCastException:
    java.lang.String cannot be cast to java.lang.Number
    at
    cascalog.ClojureCascadingBase.applyFunction(ClojureCascadingBase.java:71)
    at cascalog.ClojureFilter.isRemove(ClojureFilter.java:33)
    at
    cascading.flow.stream.FilterEachStage.receive(FilterEachStage.java:70)
    ... 31 more

    --
    You received this message because you are subscribed to the Google Groups
    "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send an
    email to cascalog-user+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.


    --
    Sam Ritchie, Twitter Inc
    703.662.1337
    @sritchie

    --
    You received this message because you are subscribed to the Google Groups
    "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send an
    email to cascalog-user+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.


    --
    *Bet on Cowboys, Not Horses....*

    --
    You received this message because you are subscribed to the Google Groups "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to cascalog-user+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
  • Dan young at Aug 29, 2013 at 12:09 pm
    Dooh..that was quick fix.....sorry to bother the list with such a trivial
    thing...LOL

    Great work to all who works on Cascalog. I'm enjoying the learning curve.

    Regards,

    Dano

    On Wed, Aug 28, 2013 at 11:08 PM, Sam Ritchie wrote:

    Yeah, all args are going to come in as strings (as with any Clojure
    program). You'll need to parse with with (Long/parseLong l), etc.

    Dan Young <danoyoung@gmail.com>
    August 28, 2013 9:43 PM
    Hello everyone,

    Just learning Cascalog/Clojure, and a total newbie....I can't seem to find
    the right neural circuit in my brain to figure out what I'm doing wrong
    below. When I hardcode in the parameters to my q1 function call,
    everything seems to work fine. But when I try to use the parameters passed
    in via the args, I'm getting a variety of java.lang.ClassCastException
    exceptions. I believe it has something to do with my operator comparisons,
    but am not sure on how/what to do to fix it. Any advice or additional
    constructive pointers would be appreciated....

    ; hadoop jar ./target/myproj.jar /in/m.csv /output 2039 20120501 20120828
    (ns myproj.core
    (:use [cascalog.api]
    [cascalog.more-taps :only (hfs-delimited)]
    [clojure.tools.cli :only (cli)])
    (:require [clojure.string :as s]
    [cascalog [ops :as c] [vars :as v]])
    (:gen-class :main true))

    (def errors (hfs-textline "/traps/bad-records" :sinkmode :replace))

    (defn q1 [src provider-id begin-date end-date]
    (<- [?guid-id ?hh-id ?individual-id ?provider-id ?last-seen-day]
    ((select-fields src ["?guid-id" "?hh-id" "?individual-id"
    "?provider-id" "?last-seen-day"]) ?guid-id ?hh-id ?individual-id
    ?provider-id ?last-seen-day)
    (>= ?last-seen-day begin-date)
    (<= ?last-seen-day end-date)
    (- ?hh-id ?individual-id :> ?delta)
    (== ?delta ?hh-id)
    (== ?provider-id provider-id)
    (:trap errors)))

    (defn -main [in out provider-id begin-date end-date & args]

    (with-job-conf {"mapred.child.java.opts" "-Xmx512"}
    (let [mct (hfs-delimited in :delimiter "\t"
    :outfields ["?guid-id" "?event-day-id" "?hh-id"
    "?individual-id" "?provider-id" "?last-seen-day" "?ip-address"
    "?match-date" "?match-type" "?rank"]
    :classes [String String Integer Integer Integer Integer String
    String String String]
    :skip-header? false)]
    (?- (hfs-delimited out :sinkmode :replace)
    (q1 mct 2039 20120701 20120721)

    ))))

    The above appears to work, but when I try to use the parameters from the
    args being passed in like:

    ....
    (q1 mct provider-id begin-date end-date)


    I get a stack trace like this below:
    ....
    ....
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:99)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:39)
    at
    cascading.flow.stream.FilterEachStage.receive(FilterEachStage.java:73)
    at
    cascading.flow.stream.FilterEachStage.receive(FilterEachStage.java:34)
    at
    cascading.flow.stream.FunctionEachStage$1.collect(FunctionEachStage.java:80)
    at
    cascading.tuple.TupleEntryCollector.safeCollect(TupleEntryCollector.java:93)
    at
    cascading.tuple.TupleEntryCollector.add(TupleEntryCollector.java:86)
    at cascading.operation.Identity.operate(Identity.java:113)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:99)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:39)
    at
    cascading.flow.stream.FunctionEachStage$1.collect(FunctionEachStage.java:80)
    at
    cascading.tuple.TupleEntryCollector.safeCollect(TupleEntryCollector.java:93)
    at
    cascading.tuple.TupleEntryCollector.add(TupleEntryCollector.java:86)
    at cascading.operation.Identity.operate(Identity.java:113)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:99)
    at
    cascading.flow.stream.FunctionEachStage.receive(FunctionEachStage.java:39)
    at cascading.flow.stream.SourceStage.map(SourceStage.java:102)
    at cascading.flow.stream.SourceStage.run(SourceStage.java:58)
    at cascading.flow.hadoop.FlowMapper.run(FlowMapper.java:127)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at
    org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149)
    at org.apache.hadoop.mapred.Child.main(Child.java:249)
    Caused by: java.lang.RuntimeException: java.lang.ClassCastException:
    java.lang.String cannot be cast to java.lang.Number
    at
    cascalog.ClojureCascadingBase.applyFunction(ClojureCascadingBase.java:71)
    at cascalog.ClojureFilter.isRemove(ClojureFilter.java:33)
    at
    cascading.flow.stream.FilterEachStage.receive(FilterEachStage.java:70)
    ... 31 more

    --
    You received this message because you are subscribed to the Google Groups
    "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send an
    email to cascalog-user+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.


    --
    Sam Ritchie, Twitter Inc
    703.662.1337
    @sritchie

    --
    You received this message because you are subscribed to the Google Groups
    "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send an
    email to cascalog-user+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.


    --
    *Bet on Cowboys, Not Horses....*

    --
    You received this message because you are subscribed to the Google Groups "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to cascalog-user+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
  • Sam Ritchie at Aug 29, 2013 at 3:44 pm
    No problem! I guarantee you're not the first person that's run into that
    issue :)

    I haven't used it in a while, but if you do start building richer
    command line interfaces, I remember this library as being quite good:

    https://github.com/clojure/tools.cli
    dan young August 29, 2013 5:09 AM
    Dooh..that was quick fix.....sorry to bother the list with such a
    trivial thing...LOL

    Great work to all who works on Cascalog. I'm enjoying the learning curve.

    Regards,

    Dano





    --
    /Bet on Cowboys, Not Horses..../
    --
    You received this message because you are subscribed to the Google
    Groups "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send
    an email to cascalog-user+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
    Sam Ritchie August 28, 2013 10:08 PM
    Yeah, all args are going to come in as strings (as with any Clojure
    program). You'll need to parse with with (Long/parseLong l), etc.
    --
    Sam Ritchie, Twitter Inc
    703.662.1337
    @sritchie

    --
    You received this message because you are subscribed to the Google Groups "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to cascalog-user+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
  • Dan young at Aug 29, 2013 at 3:49 pm
    Thanx, I saw that late last night and its certainly on my radar of things
    to learn.

    Appreciate the info!

    Regards,

    Dano
    On Aug 29, 2013 9:44 AM, "Sam Ritchie" wrote:

    No problem! I guarantee you're not the first person that's run into that
    issue :)

    I haven't used it in a while, but if you do start building richer command
    line interfaces, I remember this library as being quite good:

    https://github.com/clojure/tools.cli

    dan young <danoyoung@gmail.com>
    August 29, 2013 5:09 AM
    Dooh..that was quick fix.....sorry to bother the list with such a trivial
    thing...LOL

    Great work to all who works on Cascalog. I'm enjoying the learning curve.

    Regards,

    Dano





    --
    *Bet on Cowboys, Not Horses....*
    --
    You received this message because you are subscribed to the Google Groups
    "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send an
    email to cascalog-user+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
    Sam Ritchie <sritchie09@gmail.com>
    August 28, 2013 10:08 PM
    Yeah, all args are going to come in as strings (as with any Clojure
    program). You'll need to parse with with (Long/parseLong l), etc.



    --
    Sam Ritchie, Twitter Inc
    703.662.1337
    @sritchie

    --
    You received this message because you are subscribed to the Google Groups
    "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send an
    email to cascalog-user+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
    --
    You received this message because you are subscribed to the Google Groups "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to cascalog-user+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
  • David Kincaid at Aug 29, 2013 at 4:29 pm
    I highly recommend tools.cli for command line argument parsing in Clojure.
    I use it all the time and it makes it very easy.

    Dave
    On Thursday, August 29, 2013 10:49:27 AM UTC-5, Dan Young wrote:

    Thanx, I saw that late last night and its certainly on my radar of things
    to learn.

    Appreciate the info!

    Regards,

    Dano
    On Aug 29, 2013 9:44 AM, "Sam Ritchie" <sritc...@gmail.com <javascript:>>
    wrote:
    No problem! I guarantee you're not the first person that's run into that
    issue :)

    I haven't used it in a while, but if you do start building richer command
    line interfaces, I remember this library as being quite good:

    https://github.com/clojure/tools.cli

    dan young <javascript:>
    August 29, 2013 5:09 AM
    Dooh..that was quick fix.....sorry to bother the list with such a trivial
    thing...LOL

    Great work to all who works on Cascalog. I'm enjoying the learning curve.

    Regards,

    Dano





    --
    *Bet on Cowboys, Not Horses....*
    --
    You received this message because you are subscribed to the Google Groups
    "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send an
    email to cascalog-use...@googlegroups.com <javascript:>.
    For more options, visit https://groups.google.com/groups/opt_out.
    Sam Ritchie <javascript:>
    August 28, 2013 10:08 PM
    Yeah, all args are going to come in as strings (as with any Clojure
    program). You'll need to parse with with (Long/parseLong l), etc.



    --
    Sam Ritchie, Twitter Inc
    703.662.1337
    @sritchie

    --
    You received this message because you are subscribed to the Google Groups
    "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send an
    email to cascalog-use...@googlegroups.com <javascript:>.
    For more options, visit https://groups.google.com/groups/opt_out.
    --
    You received this message because you are subscribed to the Google Groups "cascalog-user" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to cascalog-user+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupcascalog-user @
categoriesclojure, hadoop
postedAug 29, '13 at 4:43a
activeAug 29, '13 at 4:29p
posts7
users3
websiteclojure.org
irc#clojure

People

Translate

site design / logo © 2021 Grokbase