如何从以下架构中选择列“?
Posted
技术标签:
【中文标题】如何从以下架构中选择列“?【英文标题】:How do I select columns " from the below schema? 【发布时间】:2021-01-12 08:41:30 【问题描述】:读取一个 JSON 文件并使用以下模式注册一个临时表(从带有 Native Spark SQL 推断的 JSON 文件推断)。
df = spark.read.json('/path/to/json', multiLine=True)
babynames.registerTempTable("babynames")
现在我想选择列
"sid", "id", "position", "created_at", "created_meta", "updated_at", "updated_meta", "meta", "year", "first_name", "county", "sex", "count"
使用 Spark SQL 选择语句。
这里是数据源:https://data.cityofnewyork.us/api/views/25th-nujf/rows.json?accessType=DOWNLOAD
【问题讨论】:
您可以发布您为实现该功能所做的尝试吗?您是否卡住或遇到一些错误?如果是,你能提供吗? 请不要通过破坏您的帖子为他人增加工作量。通过在 Stack Exchange 网络上发帖,您已在 CC BY-SA 4.0 license 下授予 Stack Exchange 分发该内容的不可撤销的权利(即无论您未来的选择如何)。根据 Stack Exchange 政策,帖子的非破坏版本是分发的版本。因此,任何破坏行为都将被撤销。如果您想了解更多关于删除帖子的信息,请参阅:How does deleting work? 【参考方案1】:将 json 文件放在特定位置后,您可以读取列名如下,但您需要更好地了解 json 元素。
使用 spark Sql :
val df = spark.read.option("multiline",true).json("/path/to/json")
df.createOrReplaceTempView("TestTable")
val selectedColumnsDf = spark.sql(""" Select meta.view.columns.id ,meta.view.columns.position, meta.view.createdAt from TestTable """)
使用 DataFrame Api 可以如下完成:
val df = spark.read.option("multiline",true).json("/path/to/json")
val selectedColumnsDf = df.select("meta.view.columns.id","meta.view.columns.position","meta.view.createdAt")
我只是选择这三列只是为了给你一个想法。您可以根据需要添加剩余的列。
【讨论】:
以上是关于如何从以下架构中选择列“?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Nhibernate 从连接两个具有所有 id 的表中选择只有一个不同列的多个列是 UNIQUEIDENTIFIER