Я использую datastax's connector для подключения к cassandra.Запрос таблицы cassandra от искры без использования классов ящиков
Ниже приведен код, который я использовал,
import org.apache.spark.sql.SQLContext
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import com.datastax.spark.connector._
val sqlContext = new SQLContext(sc)
val conf=new SparkConf(true)
.set("spark.cassandra.connection.host","127.0.0.1")
.set("spark.cassandra.auth.username","the_username")
.set("spark.cassandra.auth.password","the_password")
val sc=new SparkContext("local","the_keyspace",conf)
val table_1 = sc.cassandraTable("the_keyspace","table_1")
val table_2 = sc.cassandraTable("the_keyspace","table_2")
Теперь способ разоблачить эту таблицу как РДУ является использование класса случай в качестве заполнителя, как показано ниже
case class Person(name: String, age: Int)
sc.cassandraTable[Person](“test”, “persons”).registerAsTable(“persons”)
это работает отлично, но у меня есть около 50 + столбцов в каждой таблице, и это настоящая боль, чтобы напечатать их в классе case, а также определить их типы.
Есть ли способ преодолеть это? Я привык получать файл csv в виде таблицы с помощью databricks-csv, и я могу зарегистрировать их в виде таблиц и запускать запросы на них без использования заполнителя case case, есть ли что-то подобное для моего варианта использования здесь.
Если их нет, было бы полезно, если бы были некоторые генераторы, которые я могу использовать для автоматического генерации этих классов случаев.
Это, как вы должны делать все кадры данных :) Нет необходимости, чтобы пройти «registerAsTable», если вы не имеете RDD в первую очередь. – RussS
Это довольно аккуратно. Но как я могу запросить это, используя Spark SQL, я попытался зарегистрировать это как временную таблицу с помощью 'df.registerTempTable', но он выдает ошибку, например метод не найден. Я знаю, что API фрейма данных быстрее, но я теперь я делаю доказательство концепции с большим количеством шаблонов запросов, и мне было бы полезно, если бы я мог использовать SQL-запросы. –
Я не могу воспроизвести проблему. Какую версию Spark/Connector вы используете? – zero323