[英]Consuming json values from a kafka topic and writing them and formatting them in a csv file using JQ
我正在嘗試將cafka主題中的鍵和值寫入一個csv文件中。 我已經能夠選擇所需的鍵和值,但無法將它們按行分開(行中的三個值用逗號分隔)。
這是我從kafka主題中使用的兩個json記錄的示例,沒有進行任何過濾。 我使用的命令是:
./kafka-run-class.sh kafka.tools.ConsoleConsumer --bootstrap-server kafka1.example.net:9092 --topic prod.example.v1 --max-messages 2 | jq -r '. '
{ "count": "0", "source": 3, "lastModified": "2018-03-09T21:03:54.039Z", "isBusiness": false, "countryCode": " MX", "phone": "52/4446789864" } { "count": "0", "source": 3, "lastModified": "2018-03-09T21:03:54.039Z", "isBusiness": false, "countryCode": " GB", "phone": "44/0187567846" }
我嘗試使用此命令,但是每個值都放在其自己的行中:
./kafka-run-class.sh kafka.tools.ConsoleConsumer --bootstrap-server kafka1.example.net:9092 --topic prod.example.v1 --max-messages 3 | jq -r ' .isBusiness, .countryCode, .phone ' > file.csv
理想的輸出為:
false, MX, 52/4446789864
false, GB, 44/0187567846
true, BE, 32/8745687645
jq -r '[.isBusiness, .countryCode, .phone] | @csv'
產生CSV:
false," MX","52/4446789864"
false," GB","44/0187567846"
過濾器:
"\(.isBusiness), \(.countryCode), \(.phone)"
產生
false, MX, 52/4446789864
false, GB, 44/0187567846
您可能想要“修剪”字符串值,例如使用:
def trim: sub("^ +";"") | sub(" +$";"");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.