2017-01-25 10 views
1

Я импортировал файл csv в neo4j. Я пытаюсь определить большое количество свойств (всех столбцов) для каждого узла. Как я могу это сделать без ввода имени?Как определить большой набор свойств узла, не набирая их все?

Я пытался это:

USING PERIODIC COMMIT 
load csv WITH headers from "file:///frozen_catalog.csv" AS line 

//Creating nodes for each product id with its properties 
CREATE (product:product{id : line.`o_prd`, 
Gross_Price_Average: TOINT(line.`Gross_Price_Average`), 
O_PRD_SPG: TOINT(line.`O_PRD_SPG`)}); 
+2

Пожалуйста, отредактируйте описание, чтобы мы могли увидеть ваш импорт или, по крайней мере, представительную версию вашего импорта. Мы не можем давать советы, если у нас нет хорошего понимания того, что вы пробовали. – InverseFalcon

+0

На самом деле, я пытаюсь реализовать сходство с косинусом для рекомендации по фильтрации контента. Я взял набор данных, который содержит 415 уникальных продуктов в виде строк, а затем 77 столбцов, которые я намерен использовать в качестве свойств узлов продукта. Теперь у меня есть следующие запросы: 1. Нужно ли записывать имена всех отдельных столбцов, а затем конвертировать их в int/float вручную? 2. Как преобразовать категориальные переменные в фиктивные переменные, поскольку мне нужно рассчитать точечные продукты позже, как это сделать в neo4j? –

ответ

1

Вы можете добавлять свойства из карт. Например:

LOAD CSV WITH HEADERS FROM "http://data.neo4j.com/northwind/products.csv" AS row 
MERGE (P:Product {productID: row.productID}) 
SET P += row 

http://neo4j.com/docs/developer-manual/current/cypher/clauses/set/#set-adding-properties-from-maps

+0

Спасибо, что направил меня на эту ссылку. Но, согласно руководству, мне все равно придется записывать имена всех параметров. –

0

Команда НАГРУЗКИ CSV не может выполнять автоматическое преобразование типов в Интс на определенных областях, что должно быть сделано явно (хотя вы можете избежать необходимости явно указать все другие поля, используя map projection, чтобы преобразовать ваши данные линии перед установкой его через stdob - предложение).

Возможно, вы захотите взглянуть на Neo4j's import tool, так как это позволит вам указать тип поля в заголовках, который должен выполнять преобразование типов для вас.

Сказанное: 77 столбцов - это много данных для каждого хранилища на отдельных узлах. Возможно, вам захочется еще раз взглянуть на ваши данные и выяснить, будут ли некоторые из этих свойств лучше моделироваться как узлы со своей собственной меткой с отношениями к вашим узлам продукта. Вы упомянули, что некоторые из них были категорическими свойствами. Категории хорошо подходят для моделирования отдельно как узлы, а не как свойства, и, возможно, некоторые из ваших других свойств будут работать лучше как узлы.

+0

Спасибо за предложение :) –