我需要将我的.tsv文件中的信息插入Redis。我使用的是Google Collab,我没有使用Redis Python库,但是我使用的是我已经安装的客户端(出于义务):
%%bash
redis-cli ping
个字符
问题是,我需要插入.tsv文件中的信息以及123663条注解中的信息,如下所示:
Id CreationDate PostId Score Text UserDisplayName UserId
1 2015-10-29T16:31:36.090 1 0 Más tarde añadiré la respuesta, pero si alguien quiere hacer los honores antes... 23
2 2015-10-29T18:03:06.780 1 1 ¡Excelente! Nuestra primera pregunta. :) 4
型
在寻找如何将其插入Redis时,我发现您可以在bash中使用awk命令,解析每一行并将其插入Redis。
%%bash
awk -F '\t' 'FNR > 1 {gsub(/[^[:alnum:][:space:]]/, "", $5); print "XADD Comments * Id "$1" CreationDate \""$2"\" PostId "$3" Score "$4" Text \""$5"\" UserDisplayName \""$6"\" UserId "$7"\n"}' Comments.tsv | redis-cli --pipe
型
如果有人想知道,它会给出这样的输出:
%%bash
awk -F '\t' 'FNR > 1 {gsub(/[^[:alnum:][:space:]]/, "", $5); print "XADD Comments * Id "$1" CreationDate \""$2"\" PostId "$3" Score "$4" Text \""$5"\" UserDisplayName \""$6"\" UserId "$7"\n"}' Comments.tsv | head
XADD Comments * Id 1 CreationDate "2015-10-29T16:31:36.090" PostId 1 Score 0 Text "Ms tarde aadir la respuesta pero si alguien quiere hacer los honores antes" UserDisplayName "" UserId 23
XADD Comments * Id 2 CreationDate "2015-10-29T18:03:06.780" PostId 1 Score 1 Text "Excelente Nuestra primera pregunta " UserDisplayName "" UserId 4
的字符串
我的问题是它以失败告终,只插入了总数中的103649条评论。而且,许多插入都给予了以下输出:
ERR wrong number of arguments for 'xadd' command.
型
我不知道是不是因为文本字段和特殊字符有问题,但我无法再清理它了。
我希望有人能告诉我如何修复它,或者是否有另一种方法来插入.tsv文件(或.csv,我也有),这是更简单或更好的。
非常感谢你提前和新年快乐!:)
何塞·阿德里安。
1条答案
按热度按时间cs7cruho1#
而不是让它固定,我已经想出了如何正确插入信息。
字符串
输出量:
型
然后我通过对. tsv的某些字段应用预处理来插入信息。
型
输出量:
型