我試圖弄清楚 Kafka 的流媒體如何與 Memgraph 結合使用。我有一個在 Docker 容器中運行的 Memgraph。我創建了一個名為music.pyusing Visual Studio Code 的模塊,但無法將其保存到 docker 中。
import mgp
import json
@mgp.transformation
def rating(messages: mgp.Messages
) -> mgp.Record(query=str, parameters=mgp.Nullable[mgp.Map]):
result_queries = []
for i in range(messages.total_messages()):
message = messages.message_at(i)
movie_dict = json.loads(message.payload().decode('utf8'))
result_queries.append(
mgp.Record(
query=("MERGE (u:User {id: $userId}) "
"MERGE (m:Album {id: $albumId, title: $title}) "
"WITH u, m "
"UNWIND $genres as genre "
"MERGE (m)-[:OF_GENRE]->(:Genre {name: genre}) "
"MERGE (u)-[r:RATED {rating: ToFloat($rating), timestamp: $timestamp}]->(m)"),
parameters={
"userId": album_dict["userId"],
"albumId": album_dict["movie"]["movieId"],
"title": album_dict["album"]["title"],
"genres": album_dict["album"]["genres"],
"rating": album_dict["rating"],
"timestamp": album_dict["timestamp"]}))
return result_queries
我應該vi在 docker 中運行并將代碼復制/粘貼到其中還是有其他方法?
uj5u.com熱心網友回復:
您需要將music.py檔案復制到 Docker 容器。程式如下:
- 打開命令提示符/終端并找出
CONTAINER IDMemgraph Docker 容器 - 轉到
music.py保存的檔案夾/目錄并撰寫以下命令:docker cp ./music.py <CONTAINER ID>:/usr/lib/memgraph/query_modules/music.py
不要忘記從第一步替換<CONTAINER ID>為真實的。CONTAINER ID看起來CONTAINER ID像38cd0e84f17b
vi如果您將檔案安裝在容器中,您也可以使用它來創建檔案。我從未嘗試過這樣做,但請查看this question以獲取有關如何執行此操作的說明。
對我個人而言,創建轉換模塊的最簡單方法是使用 Memgraph Lab,但您沒有提及是否擁有它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/510494.html
