我正在尝试编写一些测试用例来验证源(.csv)文件和目标(hive表)之间的数据.其中一个验证是表的结构验证.
我已将.csv数据(使用已定义的模式)加载到一个数据框中,并将hive表数据提取到另一个数据框中.
当我现在尝试比较两个数据帧的模式时,它返回false.不知道为什么.对此有什么想法吗?
源数据帧架构:
scala> res39.printSchema
root
|-- datetime: timestamp (nullable = true)
|-- load_datetime: timestamp (nullable = true)
|-- source_bank: string (nullable = true)
|-- emp_name: string (nullable = true)
|-- header_row_count: integer (nullable = true)
|-- emp_hours: double (nullable = true)
Run Code Online (Sandbox Code Playgroud)
目标数据帧架构:
scala> targetRawData.printSchema
root
|-- datetime: timestamp (nullable = true)
|-- load_datetime: timestamp (nullable = true)
|-- source_bank: string (nullable = true)
|-- emp_name: string (nullable = true)
|-- header_row_count: integer (nullable = true)
|-- emp_hours: double …Run Code Online (Sandbox Code Playgroud) 我真的在这里挣扎.我有一个简单的Python Flask REST API,我已经开发了.API在我的本地开发环境(Mac OS X)中运行良好,并且在我的EC2实例上通过控制台直接执行.
我想将此服务转移到生产中,因此希望将其托管在EC2实例上运行的Apache之后.这是我不断碰壁的地方,我似乎无法通过配置和错误.我在网上研究了几篇文章和问题,似乎没有人能够帮助我.
我希望有人在这里可以为我提供有关如何在Amazon Linux EC2实例上运行的Apache后面部署我的服务的分步指导.
以下是我采取的步骤:
现在我知道我的实例正在运行,我想创建两个文件夹,我可以测试并运行我的Python Flask代码.我这样做如下:
知道为什么我得到下面的结果吗?
scala> val b = to_timestamp($"DATETIME", "ddMMMYYYY:HH:mm:ss")
b: org.apache.spark.sql.Column = to_timestamp(`DATETIME`, 'ddMMMYYYY:HH:mm:ss')
scala> sourceRawData.withColumn("ts", b).show(6,false)
+------------------+-------------------+-----------+--------+----------------+---------+-------------------+
|DATETIME |LOAD_DATETIME |SOURCE_BANK|EMP_NAME|HEADER_ROW_COUNT|EMP_HOURS|ts |
+------------------+-------------------+-----------+--------+----------------+---------+-------------------+
|01JAN2017:01:02:03|01JAN2017:01:02:03 | RBS | Naveen |100 |15.23 |2017-01-01 01:02:03|
|15MAR2017:01:02:03|15MAR2017:01:02:03 | RBS | Naveen |100 |115.78 |2017-01-01 01:02:03|
|02APR2015:23:24:25|02APR2015:23:24:25 | RBS |Arun |200 |2.09 |2014-12-28 23:24:25|
|28MAY2010:12:13:14| 28MAY2010:12:13:14|RBS |Arun |100 |30.98 |2009-12-27 12:13:14|
|04JUN2018:10:11:12|04JUN2018:10:11:12 |XZX | Arun |400 |12.0 |2017-12-31 10:11:12|
+------------------+-------------------+-----------+--------+----------------+---------+-------------------+
Run Code Online (Sandbox Code Playgroud)
我正在尝试将 DATETIME(采用 ddMMMMYY:HH:mm:ss 格式)转换为 Timestamp(显示在上面的最后一列),但它似乎没有转换为正确的值。我参考了下面的帖子,但没有帮助:
任何人都可以帮助我吗?