小编Sha*_*kar的帖子

HBase - WAL和MemStore有什么区别?

我想了解HBase架构.我可以看到两个不同的术语用于相同的目的.

Write Ahead Logs并且Memstore,两者都用于存储尚未持久化的新数据permanent storage.

WAL和MemStore有什么区别?

更新:

WAL - 用于在服务器崩溃时恢复尚未保留的数据.MemStore - 将更新作为Sorted Keyvalue存储在内存中.

在将数据写入磁盘之前,似乎有很多重复数据.

architecture hadoop hbase hdfs

8
推荐指数
1
解决办法
6351
查看次数

HiveQL - 如何使用任何UDF查找列值是否为数字?

基本上我想return rows基于一个column value.

如果列包含non numeric值,则从hive表返回这些行.

任何UDF可用的Hive?

hive hiveql

7
推荐指数
2
解决办法
2万
查看次数

获取Spark DataFrame中两个日期之间的所有日期

我有一个DF,我有bookingDt和arrivalDt列.我需要找到这两个日期之间的所有日期.

示例代码:

df = spark.sparkContext.parallelize(
            [Row(vyge_id=1000, bookingDt='2018-01-01', arrivalDt='2018-01-05')]).toDF()
diffDaysDF = df.withColumn("diffDays", datediff('arrivalDt', 'bookingDt'))
diffDaysDF.show()
Run Code Online (Sandbox Code Playgroud)

代码输出:

+----------+----------+-------+--------+
| arrivalDt| bookingDt|vyge_id|diffDays|
+----------+----------+-------+--------+
|2018-01-05|2018-01-01|   1000|       4|
+----------+----------+-------+--------+
Run Code Online (Sandbox Code Playgroud)

我尝试的是找到两个日期之间的天数,并使用timedelta函数计算所有日期explode.

dateList = [str(bookingDt + timedelta(i)) for i in range(diffDays)]
Run Code Online (Sandbox Code Playgroud)

预期产量:

基本上,我需要建立一个DF与对之间的每个日的记录bookingDt和arrivalDt,包容性.

+----------+----------+-------+----------+
| arrivalDt| bookingDt|vyge_id|txnDt     |
+----------+----------+-------+----------+
|2018-01-05|2018-01-01|   1000|2018-01-01|
+----------+----------+-------+----------+
|2018-01-05|2018-01-01|   1000|2018-01-02|
+----------+----------+-------+----------+
|2018-01-05|2018-01-01|   1000|2018-01-03|
+----------+----------+-------+----------+
|2018-01-05|2018-01-01|   1000|2018-01-04|
+----------+----------+-------+----------+
|2018-01-05|2018-01-01|   1000|2018-01-05|
+----------+----------+-------+----------+
Run Code Online (Sandbox Code Playgroud)

apache-spark-sql pyspark

7
推荐指数
3
解决办法
6595
查看次数

如何使用 Spark Core API 读取 Parquet 文件?

如何使用 Spark Core API 读取 Parquet 文件?

我知道使用 Spark SQL 有一些方法可以读取镶木地板文件。但是我们不能在我们的项目中使用 Spark SQL。

我们是否必须使用newAPIHadoopFile方法JavaSparkContext来做到这一点?

我正在使用 Java 来实现 Spark Job。

java apache-spark parquet

6
推荐指数
1
解决办法
2949
查看次数

如何在Java中使用Scala隐式类

我有一个来自RecordService API的Scala Implicit类,我想在Java文件中使用它.

package object spark {

   implicit class RecordServiceContext(ctx: SparkContext) {
     def recordServiceTextFile(path: String) : RDD[String] = {
      new RecordServiceRDD(ctx).setPath(path)
          .map(v => v(0).asInstanceOf[Text].toString)
    }
  }

}
Run Code Online (Sandbox Code Playgroud)

现在我尝试使用下面的导入在Java文件中导入它.

import com.cloudera.recordservice.spark.*;
Run Code Online (Sandbox Code Playgroud)

但是我无法使用来自sparkContext的recordServiceTextFile("path").

在Scala中,导入稍有不同,而且工作正常.

java scala cloudera-cdh

6
推荐指数
1
解决办法
2742
查看次数

使用 Python boto 从 S3 获取文件元数据

我有一些二进制文件AWS S3,我需要得到file metadata像created time,modified time并使用Python的Boto API访问的时间?

我们尝试的是将文件复制到 EC2 实例,从那里我们使用os模块stat方法来获取时间。我希望当我们将文件复制到 EC2 实例时,这些细节会有所改变。

我尝试过的示例代码:

stat = os.stat(inputFile)
createdTime = datetime.fromtimestamp(stat[9]).strftime("%A, %B %d, %Y %I:%M:%S")
Run Code Online (Sandbox Code Playgroud)

如何直接从 S3 获取这些详细信息?

python boto

6
推荐指数
2
解决办法
1万
查看次数

Spring Batch - 跳过进程记录

我想跳过一些过程记录.

我试过的是,我已经创建了自定义异常,当我想跳过记录并且它调用Skip监听器onSkipInProcess方法时抛出异常.它工作正常.

请找到配置.

 <batch:chunk reader="masterFileItemReader" writer="masterFileWriter" processor="itemProcessor" commit-interval="5000" skip-limit="100000" >
  <batch:skippable-exception-classes>
        <batch:include class="org.springframework.batch.item.file.FlatFileParseException"/>
        <batch:include class="com.exception.SkipException"/>
  </batch:skippable-exception-classes>
  <batch:listeners>
        <batch:listener ref="recordSkipListener"/>
</batch:listeners>
Run Code Online (Sandbox Code Playgroud)

但我想知道有没有其他方法可以跳过进程中的记录?

此致,尚卡尔

spring-batch

5
推荐指数
1
解决办法
2万
查看次数

Spark SQL DataFrame -distinct()vs dropDuplicates()

我正在查看DataFrame API,我可以看到两种不同的方法具有相同的功能,用于从数据集中删除重复项。

我可以理解dropDuplicates(colNames)将仅考虑列的子集来删除重复项。

这两种方法之间还有其他区别吗?

scala apache-spark-sql

5
推荐指数
3
解决办法
1万
查看次数

未来回调方法与Promises [成功与失败]之间的区别?

我倾向于Scala Concurrency使用Future和Promises.

我没有明白这一点,使用Callback方法完成Future 与使用Promise 之间的确切区别是什么?

这是否意味着Future Callback方法实际上没有完成未来?只有使用Promise我们才能完成未来?

此外,我已经看到许多像你这样的地方可以阅读期货和承诺,但你只能写信给Promises.

scala future promise

5
推荐指数
1
解决办法
968
查看次数

分区发现不适用于 spark avro 阅读器

我正在尝试读取按年、月和日期分区的 AVRO 文件。例如:

完整的文件路径

/test/data/source1/year=2018/month=2/day=14/file.avro
Run Code Online (Sandbox Code Playgroud)

基本路径

/test/data/source1/
Run Code Online (Sandbox Code Playgroud)

示例代码

val df = sqlContext
                .read()
                .format("com.databricks.spark.avro")
                .option("basePath", "/test/data/source1/")
                .option("avroSchema", avroSchema.toString())
                .load("/test/data/source1/year=2018/")
Run Code Online (Sandbox Code Playgroud)

在输出 DF 中,该year列未显示。可能是什么问题?

根据 Spark 文档Partition Discovery,它应该可以工作。

更新:

我正在使用 Spark 1.6,因为 AVRO 无法正常工作,但是对于 Parquet 来说,它可以正常工作..

scala apache-spark-sql spark-dataframe

5
推荐指数
0
解决办法
957
查看次数