我正在尝试从事件中心向Databricks读取数据,并希望为其提供诸如col1,col2等的结构。
问题-我看到只有第一条记录才采用适当的结构,而不会加载其余数据。
身体 24,5300,123456,1,PLAN-QD,PMT,15/09/15 00:00,1253323,INTEREST,LOAN-AS,空 32,1300,12458,2,PLAN,PMT,15/09/25 00:00,12532123,INTEREST,LOAN,NULL 36,1400,19458,25,PLAN,PMTS,15/11/25 00:00,92532163,INTEREST,LOAN-DS,NULL
列的标题是(在evnt集线器中不存在,仅供参考,但在输出到表中时,它们应该在其中)-> id,Bal,accnum,active,plan,Status,DateTime,Type,Loan,Where
我的代码如下-
导入org.apache.spark.eventhubs。_
导入org.apache.spark.sql.types ._
导入org.apache.spark.sql.functions ._
导入spark.implicits ._
val connectionString = ConnectionStringBuilder(“我的连接字符串”).setEventHubName(“ oth-transactions”)。build //此连接字符串将从eventhub中读取
val customEventhubParameters = EventHubsConf(connectionString)
val ConsumerDF = spark.readStream.format(“ eventhubs”)。options(customEventhubParameters.toMap).option(“ checkpointLocation”,“ / tmp / checkpoint”)。load()
val OTHDF = ConsumerDF.select($“ body”强制转换为“ string”)
val OTHDF2 = OTHDF.withColumn(“ temp”,split(col(“ body”),“ \,”))。select(
(0 until 52).map(i => col("temp").getItem(i).as(s"col$i")): _*
)
OTHDF2.printSchema
OTHDF2.writeStream.format(“ delta”)。outputMode(“ append”)。option(“ checkpointLocation”,“ / delta / events / _checkpoints / etl-from-json”)。table(“ Table_Name”)< / p>
请问我如何读取所有这些记录并将其放在数据砖中的表中?
提前谢谢!
答案 0 :(得分:0)
您正在使用“ \”而不是“,”来分隔正文列。
HOME