Guest User

Untitled

a guest
May 20th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. (ns org.clojars.making.cloudure.conv
  2. (:import (org.apache.hadoop.io IntWritable LongWritable DoubleWritable Text))
  3. )
  4.  
  5. (defmulti conv class)
  6.  
  7. (defmethod conv :default [x]
  8. x)
  9.  
  10. (defmacro defconv [conv-map]
  11. `(do
  12. ~@(for [c conv-map]
  13. `(defmethod conv ~(first c) [x#]
  14. (new ~(second c) x#)))))
  15.  
  16. (defn conv-write [key value context]
  17. (.write context (conv key) (conv value)))
  18.  
  19.  
  20. (defconv {Integer IntWritable,
  21. Double DoubleWritable,
  22. Long LongWritable,
  23. String Text
  24. ;; and more
  25. })
  26.  
  27. (comment
  28. (do
  29. (defmethod
  30. conv
  31. Integer
  32. [x__4915__auto__]
  33. (new IntWritable x__4915__auto__))
  34. (defmethod
  35. conv
  36. Double
  37. [x__4915__auto__]
  38. (new DoubleWritable x__4915__auto__))
  39. (defmethod
  40. conv
  41. Long
  42. [x__4915__auto__]
  43. (new LongWritable x__4915__auto__))
  44. (defmethod conv String [x__4915__auto__] (new Text x__4915__auto__)))
  45. )
Add Comment
Please, Sign In to add comment