如何处理spark sql中缺失的列

2024-02-12

我们正在处理无架构的 JSON 数据,有时 Spark 作业会失败,因为我们在 Spark SQL 中引用的某些列在一天中的某些时间不可用。在这些时间内,Spark 作业会失败,因为所引用的列在数据框中不可用。如何处理这种情况?我已经尝试过 UDF,但缺少太多列,因此无法真正检查每一列的可用性。我还尝试在更大的数据集上推断模式,并将其应用到数据帧上,期望缺失的列将填充空值,但模式应用程序失败并出现奇怪的错误。

请建议


这对我有用。创建了一个函数来检查所有预期的列并将列添加到数据帧(如果缺少)

def checkAvailableColumns(df: DataFrame, expectedColumnsInput: List[String]) : DataFrame = {
    expectedColumnsInput.foldLeft(df) {
        (df,column) => {
            if(df.columns.contains(column) == false) {
                df.withColumn(column,lit(null).cast(StringType))
            }
            else (df)
        }
    }
}

val expectedColumns = List("newcol1","newcol2","newcol3")

val finalDf = checkAvailableColumns(castedDateSessions,expectedColumns)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理spark sql中缺失的列 的相关文章

随机推荐

  • VSTS Nuget 安装程序无法使用包源进行身份验证

    我有一个关于 VSTS 的包提要 提供了我在一个也在 VSTS 上构建的解决方案中引用的几个包 构建在包恢复阶段突然开始失败 日志表明它找不到 nuget 应该恢复的 dll 正在恢复 NuGet 包 Basd Diagnostics 0
  • 为什么微软不想用 NaN 来修复 Equals 和 GetHashCode 的错误实现? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无法从 Spark SQL 使用现有的 Hive 永久 UDF

    我之前已经向 hive 注册了一个 UDF 是永久的不是TEMPORARY 它直线工作 CREATE FUNCTION normaliseURL AS com example hive udfs NormaliseURL USING JAR
  • 使用 linq 检查一个数组中的值是否存在于另一个数组中

    我有一个列表 其中 myclass 定义了一些属性 List
  • 我们如何在reactjs中简单地上传文件夹?

    我正在此处寻找reactjs中的上传文件夹 我在该doc和docx文件中有文件夹 我只想在用户单击浏览按钮时上传文件夹 其中我必须不允许用户选择单个文件 有人可以给我文件夹上传或文件夹选择的简单示例 其中用户只能选择文件夹而不是文件 实际上
  • 正则表达式对某些字符给出错误

    我碰到这支笔在 codePen http codepen io tmrDevelops pen NxaQmo 并发现了一个错误 如果您在搜索框中输入以下字符 我收到以下错误 我分别输入了每个字符 我认为问题出在正则表达式部分 19号线 va
  • 如何避免PHP内存耗尽?

    致命错误 第 166 行 home alien Desktop 1 scanner php 中允许的内存大小 33554432 字节已耗尽 尝试分配 136753 字节 这是 PHP 代码的 166 行 text i curl multi
  • 如何解决类似以下错误:TypeError:无法读取角度 nvd3 离散条形图中未定义的属性“长度”?

    我正在使用 Angular nvd3 离散条形图 我从 http 获取值并显示在离散条形图中 图表正确显示了我的值 但我收到了类似的错误类型错误 无法读取未定义的属性 长度 我该如何解决这个错误 下面是我的代码
  • C++中无效的语句有什么用? [复制]

    这个问题在这里已经有答案了 在我正在使用的一个库中 我看到了这段代码 template
  • 使用故事板时重用 UIViewController 实例

    我决定在我当前的 iPhone 应用程序中尝试使用故事板 我面临着一些问题 我真的需要重用我的 UIViewController 实例 我这么说是什么意思 好吧 例如我有一个表视图控制器 当我点击一个单元格时 另一个视图控制器将从故事板加载
  • Google + 环聊按钮

    我正在尝试将 google Hangout 按钮添加到我的 html 文件中 如下所示 但是当我运行 html 页面时 该按钮不显示 div div
  • 在 Vim 中,文件名的制表符补全不起作用

    当我尝试在 Vim Linux 中打开文件进行编辑时 当我按 TAB 时 Vim 仅使用当前目录中的文件名自动补全文件名 然而 在网上搜索后 我认为从版本 7 开始 Vim 应该支持使用搜索路径中所有目录中的文件名进行类似 bash 的文件
  • 提升灵气属性传播

    我的 Boost Spirit Qi 语法有问题 该语法发出不需要的类型 导致此编译错误 error C2664 std basic string lt Elem Traits Ax gt std basic string lt Elem
  • 媒体编解码器 4.1 问题

    根据我的测试 除了 Nexus5 moto G 之外 它在大多数设备上都能正常工作 在这些设备上 应用程序生成仅包含两帧的视频 并且 还收到以下错误日志 OMX qcom video encoder avc storeMetaDataInB
  • 从 VBA 搜索 Outlook 电子邮件

    给定的代码成功运行 它在 Outlook 的 已发送邮件 文件夹中搜索电子邮件主题 搜索基于特定时间段内的特定日期进行 例如 下面的代码查找 2018 年 7 月 20 日中午 12 00 到晚上 11 59 之间发送的标题为 周五发送的测
  • 我如何知道 Eclipse 插件使用了多少内存(单独)

    有没有办法知道每个 Eclipse 插件分别消耗了多少内存 进行堆转储并使用例如进行分析这Eclipse 内存分析器 http eclipse org mat 有关更多信息 请参阅使用内存分析器分析 Equinox 捆绑包依赖性 http
  • 如何检查pandas数据框中的布尔条件

    I have Alcohol df数据框 其中资格是一列 我创建了一个列表 如下所示 Graduate list B tech b tech b tech Btech BE B E b e BACHELOR bachelor BSc Bsc
  • 如何使用“PerformanceNavigationTiming” API 获取页面加载时间?

    我正在尝试使用PerformanceNavigationTiming API https developer mozilla org en US docs Web API PerformanceNavigationTiming生成页面加载指
  • 从 travis CI 获取作业 ID 的日志文件

    如何从作业 ID 和项目名称下载构建日志文件 我知道 travis ci 有 API 项目名称 eclipse jetty project 职位编号 6073028 访问日志文件的链接 https travis ci org eclipse
  • 如何处理spark sql中缺失的列

    我们正在处理无架构的 JSON 数据 有时 Spark 作业会失败 因为我们在 Spark SQL 中引用的某些列在一天中的某些时间不可用 在这些时间内 Spark 作业会失败 因为所引用的列在数据框中不可用 如何处理这种情况 我已经尝试过