Android查看数据库“*.db“内容

Android查看数据库”*.db”内容(包括本地文件、真机、虚拟机的方法)

使用android自带的SQLite,或者第三方的GreenDao等技术操作数据库时,查看内容有以下方案。

法一

要查看非虚拟机中的本地数据库文件,您可以下载一个插件来查看数据库。

[En]

To view the local database files within a non-virtual machine, you can download a plug-in to view the database.

File>Settings>Plugins>搜索”Database Navigator”>Install>重启Ansroid
studio>左侧会出现”DB Browser”>点击绿色加号,设置你要看的”*.db”文件路径>ok即可查看

法二

写的带数据库的app运行在虚拟机里,打开虚拟机对应目录查看。

点击右上角Device
Manager>run你的虚拟机>打开设备文件夹>data>data>你的app包名目录>database>就可看到你的”*.db”文件了>可以右键”Save
As”保存出来,用合适的软件打开查看

法三

直接用 APP Inspect ,我觉得最方便的方法,真机或虚拟机都好用。

底部 APP Inspect >选择好要查看的位置>等一会儿就自动显示出来了

Android查看数据库“*.db“内容

Original: https://blog.csdn.net/qq_33548747/article/details/123097103
Author: Yimi-依米
Title: Android查看数据库“*.db“内容



相关阅读

Title: spark学习记录之withColumn重复计算

在使用Spark,尤其是Spark SQL时,经常会出现一些奇奇怪怪的效率低下问题。比如说,如果lineage比较长的时候,或者lineage比较复杂需要shuffle的时候,可能存在一定的rdd复用问题。

通常在需要复用一个rdd的时候,建议进行persist。但是在实际情况下,又会经常出现不确定是否存在复用的问题。(主要对Spark理解不够深)

下面举一个例子进行学习

spark学习记录之withColumn重复计算

将箭头指向的map称作map1,右边两个map称作map2.

可以看到,rdd5是由rdd3和rdd4进行union得到,而rdd3和rdd4都最终来自于rdd1,rdd1到rdd2的map1实际承担了两条线路,所以按道理来说应该会执行两次。

rdd1 = sc.parallelize([[i, i+100] for i in range(10)], numSlices=50)
accumulator = sc.accumulator(0)

def map1(x):
    accumulator.add(1)
    return x

def map2(x):
    return x

rdd2 = rdd1.map(map1)
# rdd2.persist()

rdd3 = rdd2.map(map2)
rdd4 = rdd2.map(map2)

rdd5 = rdd3.union(rdd4)

rdd5.collect()
print(accumulator.value)

输出为20。因为rdd1中有10个元素,对应两遍map让累加器变为20.

如果对rdd2进行persist,这样就切断rdd2之前的dag,所以map1只需计算一遍。累加器的计算结果果然为10。

再看Spark SQL

用DataFrame实现上述步骤

df1 = spark.createDataFrame([[i, i+100] for i in range(10)]).toDF("a", 'v').repartition(50)
accumulator = sc.accumulator(0)

@udf
def map1(x):
    accumulator.add(1)
    return x

@udf
def map2(x):
    return x

df2 = df1.withColumn("b", map1("a"))

df3 = df2.withColumn("c", map2("b"))
df4 = df2.withColumn("c", map2("b"))
df5 = df3.union(df4)

df5.collect()
print(accumulator.value)

输出结果竟然是40?

先把df2.persist()一下看看,输出结果为10,这就合理多了。

但是为什么会出现40这个结果。原来是withColumn这个函数使用不当。。。。

学艺不精,惭愧。

df5.columns为[‘a’, ‘v’, ‘b’, ‘c’]

因为是union而来,’b’列执行了两次map1,’c’由’b’经map2得到,’c’因为’b’也需要两次map1,所以一共4次,输出40。

如果不需要’b’,仅select出[‘a’, ‘v’, ‘c’], 这样只需要两次,输出结果也与预期一样是20.

归根结底,最后还是要看DataFrame用到了哪些数据,这些列是怎么来的。

Original: https://www.cnblogs.com/antelx/p/16700993.html
Author: Antel
Title: spark学习记录之withColumn重复计算

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/378877/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总