Neo4j:使用LOAD CSV检测CSV标头中的恶意空间
生活随笔
收集整理的這篇文章主要介紹了
Neo4j:使用LOAD CSV检测CSV标头中的恶意空间
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
上周,我正在幫助某人將CSV文件中的數(shù)據(jù)加載到Neo4j中,我們在過濾掉其中一列中包含空值的行時遇到了麻煩。
數(shù)據(jù)如下所示:
load csv with headers from "file:///foo.csv" as row RETURN row╒══════════════════════════════════╕ │row │ ╞══════════════════════════════════╡ │{key1: a, key2: (null), key3: c}│ ├──────────────────────────────────┤ │{key1: d, key2: e, key3: f} │ └──────────────────────────────────┘我們想過濾掉任何將'key2'設置為null的行,所以讓我們調(diào)整一下查詢來做到這一點:
load csv with headers from "file:///foo.csv" as row WITH row WHERE NOT row.key2 is null RETURN row(no rows)嗯,這很奇怪,它擺脫了兩行。 我們希望看到第二行,因為它沒有空值。
在這一點上,我們可能會懷疑我們在屏幕上看到的實際上不是數(shù)據(jù)的樣子。 讓我們編寫以下查詢來檢查標頭值:
load csv with headers from "file:///foo.csv" as row WITH row LIMIT 1 UNWIND keys(row) AS key RETURN key, SIZE(key)╒═════╤═════════╕ │key │SIZE(key)│ ╞═════╪═════════╡ │key1 │4 │ ├─────┼─────────┤ │ key2│5 │ ├─────┼─────────┤ │ key3│5 │ └─────┴─────────┘第二列告訴我們,“ key2”和“ key3”或“ key2”和“ key3”的列中還有一些額外的字符。 在這種情況下,它們是空格,但很可能是另一個字符:
load csv with headers from "file:///foo.csv" as row WITH row LIMIT 1 UNWIND keys(row) AS key RETURN key, replace(key, " ", "_SPACE_") AS spaces╒═════╤═══════════╕ │key │spaces │ ╞═════╪═══════════╡ │key1 │key1 │ ├─────┼───────────┤ │ key2│_SPACE_key2│ ├─────┼───────────┤ │ key3│_SPACE_key3│ └─────┴───────────┘如果我們清理CSV文件,然后重試,一切將按預期工作:
load csv with headers from "file:///foo.csv" as row WITH row LIMIT 1 UNWIND keys(row) AS key RETURN key, SIZE(key)╒════╤═════════╕ │key │SIZE(key)│ ╞════╪═════════╡ │key1│4 │ ├────┼─────────┤ │key2│4 │ ├────┼─────────┤ │key3│4 │ └────┴─────────┘load csv with headers from "file:///foo.csv" as row WITH row WHERE NOT row.key2 is null RETURN row╒═══════════════════════════╕ │row │ ╞═══════════════════════════╡ │{key1: d, key2: e, key3: f}│ └───────────────────────────┘翻譯自: https://www.javacodegeeks.com/2016/10/neo4j-detecting-rogue-spaces-csv-headers-load-csv.html
總結
以上是生活随笔為你收集整理的Neo4j:使用LOAD CSV检测CSV标头中的恶意空间的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: servlet基础_Servlet基础
- 下一篇: 21端口被占用解决办法(21端口ddos