Nano Hash - криптовалюты, майнинг, программирование

Свойство массива хранилища шифров neo4j во время импорта csv

Мне нужно импортировать данные из csv формы

id;name;targetset
1;"somenode",[1,3,5,8]
2,"someothernode",[3,8]

в граф, и мне нужно сохранить targetset в виде коллекции (массива) с помощью шифра. Я попытался

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:/mytable.csv" AS row FIELDTERMINATOR ';'
CREATE (:MyNode {id: row.id, name: row.name, targetset: row.targetset});

но он хранит targetset в виде строки, например. "[1,3,5,8]". Кажется, не существует функции для преобразования строк кодирования массива в фактические массивы, например, toInt для преобразования строк в целые числа. Есть ли еще возможность?

03.07.2017

Ответы:


1

Лучше всего здесь подойдут Процедуры APOC. Используйте функцию apoc.convert.fromJsonList().

Пример использования:

WITH "[1,3,5,8]" as arr
RETURN apoc.convert.fromJsonList(arr)
04.07.2017
  • какое-нибудь объяснение, почему apoc будет моим лучшим выбором? простота синтаксиса? скорость? я никогда не работал с ним 04.07.2017
  • Только ради простоты запроса, поскольку он наиболее легко заполняет пробел в функциональности и прост в использовании и чтении. 04.07.2017
  • @tscherg Основное преимущество этого решения по сравнению с моим решением заключается в том, что apoc.convert.fromJsonList вернет массив значений int. Предложенное мной решение вернет массив строковых значений... Так что я считаю, что решение InverseFalcon более подходит в данном случае. 04.07.2017
  • @InverseFalcon пытался интегрировать APOC локально (win10). возможно, я смогу избежать открытия нового вопроса, задав его здесь: в браузере не отображаются никакие процедуры, кроме apoc.schema.assert. удаленно работает (дебиан). Любые идеи? 05.07.2017

  • 2

    Вы можете попробовать это:

    USING PERIODIC COMMIT
    LOAD CSV WITH HEADERS FROM "file:/mytable.csv" AS row FIELDTERMINATOR ';'
    CREATE (:MyNode {id: row.id, name: row.name, targetset: split(substring(row.targetset, 1, length(row.targetset) - 2), ',') });
    

    Приведенный выше код удаляет символы [ и ] из строки [1,3,5,8], используя substring() и функции length(). После того, как строка 1,3,5,8 разделена с учетом , в качестве разделителя.

    03.07.2017
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..