Hi Joshua,
I believe you want to set "byRow" to false (the default).
Druid supports two ways of computing uniques. The first is to use the cardinality aggregator like what you are doing. This computes the approximate cardinality of a set of strings, where that set of strings is included in the segment file. One other option is to look at the "hyperUnique" aggregator. Using this aggregator, you can create hyperloglog indexes at ingestion time that can be used later on for queries. This method avoids storing the actual strings in the set you wish to run distinct counts over and should generally reduce your data storage sizes.
Let me know if this makes sense.
-- FJ