Forum Discussion

virender_prajap's avatar
virender_prajap
New Contributor III
7 years ago

Transpose column to Row

Hi, I am not able to do easy transpose. I tried many snaps nut not able to solve this.
Please help to transpose column into row

6 Replies

  • tstack's avatar
    tstack
    Former Employee

    Indeed, there’s a Pivot snap, but that does the opposite of what you’re looking to do. Until such a snap exists, you can do this using a GroupByN snap and the expression language. If you add a GroupByN snap with a “Group Size” of zero, it will collect all of the incoming data into a single document. You can then follow that up with a Mapper that has this expression:

    {}.extend($group.map(x => [x.Category, x.DataType]))
    

    The extend() method will construct a new object containing the key/value pairs returned by the $group.map() call.

    Here’s a screenshot:

    Here’s an export of this pipeline:

    TransposeExample_2018_08_15.slp (6.8 KB)

      • vsunilbabu's avatar
        vsunilbabu
        New Contributor II

        Hello everybody,

        Can someone help me with exactly the opposite.
        to

        Also, in my challenge, the names of columns and number of columns will change(dynamic).

        Thanks in advance,
        Sunil

  • Believe it or not, I had the SAME exact problem. I don’t believe there IS a snap to fix this, BUT, you can use the script snap. That is what I did. AND, though I didn’t write it to be neat. If you tell it you are using a python program, you can pivotdata.py.txt (1.6 KB)
    use my script. I was a dreamer, and my dream didn’t work. You might want to change the line:

    in_doc[“_”+fieldsr[i]]=fields[i]

    to

    in_doc[fieldsr[i]]=fields[i]

    • virender_prajap's avatar
      virender_prajap
      New Contributor III

      Thanks Stephen! 🙂
      I’ll try this approach as well.