0

У меня есть ситуация, когда я хочу «перебрать» или «перебрать» по «широким строкам», а не логические строки Cassandra (строки CQL), используя SparkSQL.SparkSQL spanning логических строк Cassandra

В основном мои данные разделены на timestamp (раздел ключа), и есть ключ кластеризации, который является идентификатором датчика.

Для каждого timestamp Я хотел бы выполнить операции, тривиальный пример - сделать sensor1/sensor2.

Как я могу эффективно это сделать с помощью SparkSQL, сохраняя локальность данных (и я думаю, что моя модель данных хорошо подходит для этих задач)?

Я читал this post on Datastax, в котором упоминается spanBy и spanByKey в разъеме Cassandra. Как это будет использоваться с SparkSQL?

Пример псевдокода (pySpark):

ds = sqlContext.sql("SELECT * FROM measurements WHERE timestamp > xxx") 
# span the ds by clustering key 
# filter the ds " sensor4 > yyy " 
# for each wide-row do sensor4/sensor1 

ответ

1

Это не возможно прямо сейчас. API spanBy доступен только из программного API. Чтобы включить его в SparkSQL, потребовалось бы расширить синтаксис SparkSQL, чтобы ввести дополнительную статью, и это тяжелая работа ...

+0

Спасибо за информацию. Доступно ли это в коннекторе pyspark (targetholding)? Как вы думаете, вы могли бы предложить альтернативный способ SparkSQL? –

+0

Я не думаю, что он доступен с pyspark, так как pyspark использует dataframe внизу (документ говорит ** вы ограничены только операциями DataFrame **) – doanduyhai

+1

Лучшим вариантом является создание JIRA и запрос расширения функции spanBy к pySpark или/и SparkSQL. – doanduyhai

Смежные вопросы