Apache Sparkを使用して、固定長の連続したサブシーケンスと文字列配列からの特定の最小サポートを見つける方法を教えてください。 例えばTGTGTGTGTGApache Sparkを使用して連続したサブシーケンスを頻繁に検索する
答えて
は、異なる長さのユニークサブ配列にそれを分割し、inital文字列を取ってみ長さL = 2場合は、文字列S = AATTGTGTGTGTGATTTTTTAATG考えると、最小サポートが5で、その後、頻繁に連続したサブシーケンスが
ですそれらの上にインアーialシーケンスをブロードキャストし、フィルタリングを一致させる。このような何かspark-shell
val s = "AATTGTGTGTGTGATTTTTTAATG" //your string
val s_broadcast = sc.broadcast(s) //broadcast version
val A = 2 // min length of substring
val B = 3 // max length of substring
val C = 3 // min support
val L = s.size //length of the string
sc.parallelize(
for{
i <- A to B
j <- 0 to (L - i)
} yield (j,i+j)
) // generating paris of substrings
.map{case(j,i)=>s_broadcast.value.substring(j,i)}
.distinct // if optimization is needed, this step is a place to start
.filter(x=>s_broadcast.value.indexOf(x*C)>=0)
.collect
.map(_*C)
で編集作業になりますよう しかし後には - ここで最長の部分文字列を返しますコードです。前のコードにはC
が固定されていますが、これは最も長く試行されます。
val s = "AATTGTGTGTGTGTGATTTTTTAATG" //your string
val s_broadcast = sc.broadcast(s) //broadcast version
val A = 2 // min length of substring
val B = 3 // max length of substring
val C = 3 // min support
val L = s.size //length of the string
sc.parallelize(
for{
i <- A to B
j <- 0 to (L - i)
} yield (j,i+j)
) // generating paris of substrings
.map{case(j,i)=>s_broadcast.value.substring(j,i)}
.distinct // if optimization is needed, this step is a place to start
.flatMap(x=>
for{
v <- C to L/A
} yield x->v
) //making "AB"->3 pairs, which will result in search for "ABABAB"
.filter{case(x,v)=>s_broadcast.value.indexOf(x*v)>=0}
.groupByKey //grouping same substrings of different length
.map{case(k,v)=>k->v.max} //getting longer substring
.collect //bringing substring to the driver
.map{case(k,v)=>k*v}
このコードの出力はArray(TT、GT、TG)であり、入力文字列s = AATTGTGTGTGTGATTTTTATATGの連続したサブシーケンスではありません。 – Abims
最後の行に '.map(_ * C)'を追加しました – avloss
大変感謝していますが、val s = sc.textFile( "file:/// tmp/input")を使ってローカルマシンから自分の入力を取得しようとしています。 txt ")とval s_broadcast = sc.broadcast(" file:///tmp/input.txt ")のブロードキャスト変数にエラーがあります。java.lang.StringIndexOutOfBoundsException:文字列インデックスが範囲外です。コード内のmap {case(j、i)=> s_broadcast.value.substring(j、i)}。私はエラーを修正するにあなたの助けを感謝します。 – Abims
- 1. Pythonを使用したApache Spark TFIDF
- 2. LINQを使用して最も頻繁に値を選択
- 3. 頻繁にイベント1309を取得し続ける
- 4. Solrファセット検索でstemedフィールドを使用して人間が読める最も頻繁に索引付けされた用語を表示
- 5. キャッスルプロジェクトDynamicProxyはReflectionを頻繁に使用しますか?
- 6. は、私は頻繁に使用してコマンドを実行するためにinputdialogを使用inputdialog
- 7. PHP/MYSQLを使用している共有サーバーで「接続タイムアウト」エラーが頻繁に発生する
- 8. Magentoバナーは頻繁に関連するプロモーションへのリンクを外します
- 9. LINQを頻繁に使用することをお勧めしますか?
- 10. MySQL:MySQL関連の検索を使用した特別な検索アルゴリズム
- 11. Sphinxインデックスから最も頻繁に出現するキーワードをどのように検索しますか?
- 12. ハッシュマップを使用して最も頻繁に使用する単語を見つけるC++
- 13. Vimのより頻繁に使用された構成の
- 14. Application_Endが頻繁
- 15. NSFetchedResultsControllerと検索ディスプレイコントローラを使用してCoreDataを検索する
- 16. WebSocket頻繁にメッセージをゼロコピーする
- 17. ミドルウェアまたはカスタムテンプレートタグを使用してスニペットを頻繁に変更しないでください
- 18. Hadoop/MapReduceを使用した接続コンポーネントの検索
- 19. iPhoneアプリケーションコードを頻繁にテストするジェスチャーの連鎖を避ける方法
- 20. Apache IgniteとApache Sparkの統合、IgniteRDDを使用したSpark Contextへのキャッシュのロード
- 21. 列の索引が頻繁に更新される
- 22. Javaアプレットを使用した連続アニメーション
- 23. CouchDB - jQueryを使用した連続フィード
- 24. COMを使用してOutlookの連絡先を検索しますか?
- 25. Javaで頻繁にスクリーンショットを撮る
- 26. postgresqlを頻繁に取る単一カウントクエリ
- 27. 電話番号を使用して連絡先を検索する
- 28. wordpress phpとmysql接続が頻繁に切断される
- 29. Apache Sparkデータフレーム(Python)を使用してSwitchステートメントを実行する方法
- 30. Apache Sparkを使用して複数のHiveストアを照会する
「S」の最大長は何ですか? 'L'とMinimum Supportの最大値は何ですか? – axiom